From 2b446a5fd5d8f9b8c0f1e3acef1eef7ad9adb6f9 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 09 四月 2025 10:25:27 +0800
Subject: [PATCH] 1.1

---
 app/src/main/java/com/example/firstapp/activity/LoginActivity.kt |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/activity/LoginActivity.kt b/app/src/main/java/com/example/firstapp/activity/LoginActivity.kt
index 3516e12..36ac653 100644
--- a/app/src/main/java/com/example/firstapp/activity/LoginActivity.kt
+++ b/app/src/main/java/com/example/firstapp/activity/LoginActivity.kt
@@ -1,9 +1,24 @@
 package com.example.firstapp.activity
+import android.app.AlertDialog
 import android.os.Bundle
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import android.content.Intent
+import android.graphics.Color
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.TextPaint
+import android.text.method.LinkMovementMethod
+import android.text.style.ClickableSpan
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.Button
+import android.widget.CheckBox
+import android.widget.TextView
+import com.example.firstapp.R
 import com.example.firstapp.databinding.ActivityLoginBinding
+import com.example.firstapp.utils.PreferencesManager
+import kotlin.system.exitProcess
 
 class LoginActivity : AppCompatActivity() {
     private lateinit var binding: ActivityLoginBinding
@@ -13,6 +28,12 @@
         binding = ActivityLoginBinding.inflate(layoutInflater)
         setContentView(binding.root)
         setupViews()
+
+        val phone=PreferencesManager.getLastLoginPhone()
+        // 如果phone不存在则展示弹框
+        if (phone.isNullOrEmpty()) {
+            showConfirmDialog()
+        }
     }
 
     private fun setupViews() {
@@ -41,4 +62,99 @@
         }
     }
 
+    private fun showConfirmDialog() {
+        val dialogView = LayoutInflater.from(this).inflate(R.layout.login_protocol_dialog_custom, null)
+
+        val dialog = AlertDialog.Builder(this)
+            .setView(dialogView)
+            .create()
+
+        dialog.window?.setBackgroundDrawableResource(R.drawable.dialog_background)
+
+        val btnConfirm = dialogView.findViewById<Button>(R.id.btnConfirm)
+        btnConfirm.setOnClickListener {
+            dialog.dismiss()
+        }
+        val btnCancel = dialogView.findViewById<Button>(R.id.btnCancel)
+        btnCancel.setOnClickListener {
+            dialog.dismiss()
+            // 退出整个应用
+            finishAffinity() // 关闭当前Activity和它之上的所有Activity
+            exitProcess(0)   // 终止应用进程(需要引入 kotlin.system.exitProcess)
+        }
+
+        // 👇 设置可点击文字逻辑
+        val textView = dialogView.findViewById<TextView>(R.id.dialogMessage2)
+        val content = "您可以阅读「服务使用协议」和「隐私保护政策」了解相关信息。如果您同意,请点击同意,开始使用我们的服务。"
+        val spannableString = SpannableString(content)
+
+        val serviceStart = content.indexOf("「服务使用协议」")
+        val serviceEnd = serviceStart + "「服务使用协议」".length
+        val privacyStart = content.indexOf("「隐私保护政策」")
+        val privacyEnd = privacyStart + "「隐私保护政策」".length
+
+        spannableString.setSpan(object : ClickableSpan() {
+            override fun onClick(widget: View) {
+                startContentActivity("用户协议", "服务使用协议")
+//                Toast.makeText(this@LoginActivity, "点击了服务使用协议", Toast.LENGTH_SHORT).show()
+                // 可跳转 WebViewActivity 或打开链接
+            }
+
+            override fun updateDrawState(ds: TextPaint) {
+                super.updateDrawState(ds)
+                ds.color = Color.parseColor("#1E88E5")
+                ds.isUnderlineText = false
+            }
+        }, serviceStart, serviceEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+
+        spannableString.setSpan(object : ClickableSpan() {
+            override fun onClick(widget: View) {
+                startContentActivity("隐私协议", "隐私保护政策")
+//                Toast.makeText(this@LoginActivity, "点击了隐私保护政策", Toast.LENGTH_SHORT).show()
+            }
+
+            override fun updateDrawState(ds: TextPaint) {
+                super.updateDrawState(ds)
+                ds.color = Color.parseColor("#1E88E5")
+                ds.isUnderlineText = false
+            }
+        }, privacyStart, privacyEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+
+        textView.text = spannableString
+        textView.movementMethod = LinkMovementMethod.getInstance()
+
+        dialog.show()
+    }
+
+
+    /*    private fun showConfirmDialog() {
+
+            val dialogView = LayoutInflater.from(this).inflate(R.layout.login_protocol_dialog_custom, null)
+
+            val dialog = AlertDialog.Builder(this)
+                .setView(dialogView)
+                .create()
+
+            // 设置自定义背景
+            dialog.window?.setBackgroundDrawableResource(R.drawable.dialog_background)
+
+            // 获取按钮并设置点击事件
+            val btnConfirm = dialogView.findViewById<Button>(R.id.btnConfirm)
+            btnConfirm.setOnClickListener {
+                // 将协议勾选上
+                dialog.dismiss()
+            }
+
+            // 显示对话框
+            dialog.show()
+        }*/
+
+    private fun startContentActivity(id: String, title: String) {
+        val intent = Intent(this, ContentDetailActivity::class.java).apply {
+            putExtra(ContentDetailActivity.ID, id)
+            putExtra(ContentDetailActivity.EXTRA_TITLE, title)
+        }
+        startActivity(intent)
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3