From 3408b10a3466f2db3f81e5c484142e3c180d36ac Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期五, 12 五月 2023 11:24:02 +0800
Subject: [PATCH] 定位权限说明弹窗

---
 app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt b/app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt
index 1512d1b..aaa225e 100644
--- a/app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt
+++ b/app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt
@@ -2,12 +2,23 @@
 
 import android.annotation.SuppressLint
 import android.os.Bundle
+import android.os.CountDownTimer
+import android.view.View
+import android.webkit.WebSettings
+import android.webkit.WebView
 import androidx.core.app.ActivityCompat
+import androidx.core.os.bundleOf
+import cn.sinata.xldutils.utils.SPUtils
 import com.fuban.driver.R
-import com.fuban.driver.base.Const
-import com.fuban.driver.base.MyBaseActivity
+import com.fuban.driver.base.*
+import com.fuban.driver.bean.AgreeBean
+import com.fuban.driver.netUtls.Api
+import com.fuban.driver.netUtls.callNet
+import com.fuban.driver.netUtls.getMapByAny
 import com.fuban.driver.netUtls.getToken
 import com.fuban.driver.ui.main.MainActivity
+import com.fuban.driver.utils.Cache.CacheKey
+import com.fuban.driver.utils.view.UserRuleDialog
 import org.jetbrains.anko.startActivity
 
 class StartActivity : MyBaseActivity() {
@@ -23,16 +34,25 @@
     @SuppressLint("SourceLockedOrientationActivity")
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        setRxpermiss()
+        checkPrivacy()
+//        setRxpermiss()
     }
 
 
     private fun callLast() {
-        if (getToken().isNullOrEmpty()){
-            startActivity<LoginActivity>()
-        }else{
-            startActivity<MainActivity>()
-        }
+        MyApplication.getInstance()?.initSdk()
+        object :CountDownTimer(2000,1000){
+            override fun onTick(millisUntilFinished: Long) {
+            }
+
+            override fun onFinish() {
+                if (getToken().isNullOrEmpty()){
+                    startActivity<LoginActivity>()
+                }else{
+                    startActivity<MainActivity>()
+                }
+            }
+        }.start()
     }
 
     @SuppressLint("CheckResult")
@@ -59,5 +79,87 @@
     override fun setOnclick() {
     }
 
+    private var privacy = "" //隐私协议
+    private var user = "" //用户协议
+    fun checkPrivacy() {
+        var isAgreen = CacheKey.getKeyStr("isAgreen")
+        if (isAgreen.isEmpty()) {
+            callys {
+                privacy = it
+                showPrivacyDialog()
+            }
+            callyh {
+                user = it
+                showPrivacyDialog()
+            }
+        }else
+            callLast()
+    }
+
+    private fun showPrivacyDialog(){
+        if (privacy.isNotEmpty() && user.isNotEmpty()) {
+            val userRuleDialog = UserRuleDialog()
+            userRuleDialog.arguments = bundleOf("privacy" to privacy, "user" to user)
+            userRuleDialog.setDismissCallback(object : UserRuleDialog.OnDismiss {
+                override fun onDismiss() {
+                    if (CacheKey.getKeyStr("isAgreen").isNullOrEmpty())
+                        finish()
+                    else
+                        callLast()
+                }
+            })
+            val ft = supportFragmentManager.beginTransaction()
+            ft.add(userRuleDialog, "rule")
+            ft.commitAllowingStateLoss()
+        }
+    }
+
+    fun callys(ok: (s: String) -> Unit) {
+        var map = getMapByAny()
+        map["type"] = 1
+        callNet(false,Api.queryByType, map) {
+            var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
+            ok(data.data.content)
+        }
+    }
+
+    fun callyh(ok: (s: String) -> Unit) {
+        var map = getMapByAny()
+        map["type"] = 2
+        callNet(false,Api.queryByType, map) {
+            var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
+            ok(data.data.content)
+        }
+    }
+
+    private fun setWebview(webView: WebView, url: String) {
+        val settings = webView.settings
+        settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
+        settings.defaultTextEncodingName = "utf-8" //设置编码格式
+        settings.useWideViewPort = true //设置此属性,可任意比例缩放
+        settings.loadWithOverviewMode = true // 页面支持缩放:
+        settings.builtInZoomControls = true
+        settings.useWideViewPort = false //将图片调整到适合webview的大小
+        settings.setSupportZoom(false) //支持缩放
+        settings.supportMultipleWindows() //多窗口
+        settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存
+        settings.allowFileAccess = true //设置可以访问文件
+        settings.setNeedInitialFocus(true) //当webview调用requestFocus时为webview设置节点
+        settings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
+        settings.loadsImagesAutomatically = true //支持自动加载图片
+        settings.javaScriptEnabled = true
+        settings.domStorageEnabled = true
+        webView.isScrollContainer = false
+        webView.isScrollbarFadingEnabled = false
+        webView.scrollBarStyle = View.SCROLLBARS_OUTSIDE_OVERLAY
+        webView.addJavascriptInterface(InnerJsInterface(), "HTMLOUT")
+        if (url!!.startsWith("http")) {
+            webView.loadUrl(url)
+        } else {
+            val sHead =
+                "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
+            webView.loadDataWithBaseURL(null, sHead + url, "text/html", "utf-8", null)
+        }
+    }
 
 }

--
Gitblit v1.7.1