From 3ebe05b13f1a04048073ce9cf741bc6116fb6c90 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期四, 26 三月 2026 14:53:33 +0800
Subject: [PATCH] 更改隐私弹窗显示逻辑,处理应用市场问题 升级本版

---
 app/src/main/java/com/igo/user/ui/SplashActivity.kt |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/igo/user/ui/SplashActivity.kt b/app/src/main/java/com/igo/user/ui/SplashActivity.kt
index 88ee490..27c5f77 100644
--- a/app/src/main/java/com/igo/user/ui/SplashActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/SplashActivity.kt
@@ -1,16 +1,18 @@
 package com.igo.user.ui
 
 import android.Manifest
+import android.content.pm.PackageManager
 import android.os.Bundle
 import android.os.CountDownTimer
 import android.util.Log
 import android.view.Window
 import android.view.WindowManager
+import androidx.core.app.ActivityCompat
+import androidx.core.os.bundleOf
 import cn.sinata.xldutils.activity.BaseActivity
 import cn.sinata.xldutils.utils.SPUtils
 import cn.sinata.xldutils.utils.myToast
 import cn.sinata.xldutils.utils.optString
-import com.blankj.utilcode.util.ToastUtils
 import com.google.android.gms.maps.model.LatLng
 import com.google.gson.Gson
 import com.igo.user.IGoApplication
@@ -18,20 +20,20 @@
 import com.igo.user.IGoApplication.Companion.lat
 import com.igo.user.IGoApplication.Companion.lon
 import com.igo.user.R
+import com.igo.user.dialog.UserRuleDialog
 import com.igo.user.network.HttpManager
 import com.igo.user.network.entity.Function
 import com.igo.user.network.request
 import com.igo.user.ui.HomeActivity.Companion.latHome
 import com.igo.user.ui.HomeActivity.Companion.lonHome
-import com.igo.user.ui.login.LoginActivity
 import com.igo.user.utils.Const
 import com.igo.user.utils.google.AMapKit
-import com.tbruyelle.rxpermissions2.RxPermissions
 import com.twitter.sdk.android.core.DefaultLogger
 import com.twitter.sdk.android.core.Twitter
 import com.twitter.sdk.android.core.TwitterAuthConfig
 import com.twitter.sdk.android.core.TwitterConfig
 import org.jetbrains.anko.startActivity
+import java.util.concurrent.atomic.AtomicInteger
 
 
 class SplashActivity : BaseActivity() {
@@ -39,6 +41,9 @@
 
     private var timer: CountDownTimer? = null
     private var startedMain = false //控制只进入一次首页
+
+    private var privacy: String? = null //隐私协议
+    private var user: String? = null //用户协议
 
     override fun onCreate(savedInstanceState: Bundle?) {
         window.requestFeature(Window.FEATURE_NO_TITLE)
@@ -58,20 +63,58 @@
             )
             .debug(true).build()
         Twitter.initialize(build)
-        requestLocation()
+        getAgreement()
+    }
+
+    private fun getAgreement() {
+        if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false)) {
+            val count = AtomicInteger(0)
+            HttpManager.getH5(1).request(this) { _, data ->
+                privacy = data?.optString("content") ?: ""
+                if (count.addAndGet(1) == 2) {
+                    showPrivacyAgreement()
+                }
+            }
+            HttpManager.getH5(2).request(this) { _, data ->
+                user = data?.optString("content") ?: ""
+                if (count.addAndGet(1) == 2) {
+                    showPrivacyAgreement()
+                }
+            }
+        } else {
+            requestLocation()
+        }
+    }
+
+    private fun showPrivacyAgreement() {
+        if (privacy != null && user != null) {
+            val userRuleDialog = UserRuleDialog()
+            userRuleDialog.arguments = bundleOf("privacy" to privacy, "user" to user)
+            userRuleDialog.setDismissCallback(object : UserRuleDialog.OnDismiss {
+                override fun onDismiss() {
+                    if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false))
+                        finish()
+                    else {
+                        requestLocation()
+                    }
+                }
+            })
+            userRuleDialog.show(supportFragmentManager, "rule")
+        } else {
+            requestLocation()
+        }
     }
 
     private fun requestLocation() {
-        val disposable =
-            RxPermissions(this@SplashActivity).request(Manifest.permission.ACCESS_FINE_LOCATION)
-                .subscribe {
-                    if (it) {
-                        initLocationOption()
-                    } else {
-                        startMain(false)
-                    }
-                }
-        onBindHelper(disposable)
+        if (ActivityCompat.checkSelfPermission(
+                this,
+                Manifest.permission.ACCESS_FINE_LOCATION
+            ) == PackageManager.PERMISSION_GRANTED
+        ) {
+            initLocationOption()
+        } else {
+            startMain(false)
+        }
     }
 
     /**
@@ -159,7 +202,7 @@
     private fun startMain(isOpen: Boolean) {
         if (!startedMain) {
             startedMain = true
-                startActivity<HomeActivity>("isOpen" to isOpen, "func" to func)
+            startActivity<HomeActivity>("isOpen" to isOpen, "func" to func)
         }
         finish()
     }

--
Gitblit v1.7.1