From bee2d6cacc7ff3af682897eee1eac4720f5e1b8d Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期六, 08 二月 2025 18:15:37 +0800
Subject: [PATCH] 新增功能开发完成

---
 app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
index ebf80a3..65a92b0 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
@@ -17,6 +17,7 @@
 import com.sinata.xqmuse.MainActivity
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.XQApplication
+import com.sinata.xqmuse.dialog.TipDialog
 import com.sinata.xqmuse.dialog.UserRuleDialog
 import com.sinata.xqmuse.network.Apis
 import com.sinata.xqmuse.network.HttpManager
@@ -24,7 +25,9 @@
 import com.sinata.xqmuse.utils.Const
 import com.umeng.commonsdk.UMConfigure
 import kotlinx.android.synthetic.main.activity_splash.*
+import org.jetbrains.anko.browse
 import org.jetbrains.anko.startActivity
+import org.jetbrains.anko.toast
 import java.io.ByteArrayInputStream
 import java.security.cert.CertificateException
 import java.security.cert.CertificateFactory
@@ -61,7 +64,7 @@
         if (SPUtils.instance().getBoolean(Const.User.IS_AGREE)){
             AMapLocationClient.updatePrivacyShow(this,true,true)
             AMapLocationClient.updatePrivacyAgree(this,true)
-            startNext()
+            checkNewVersion()
         }else{
             getAgreement()
         }
@@ -93,7 +96,7 @@
                         AMapLocationClient.updatePrivacyShow(this@SplashActivity,true,true)
                         AMapLocationClient.updatePrivacyAgree(this@SplashActivity,true)
                     } else
-                        startNext()
+                        checkNewVersion()
                 }
             })
             userRuleDialog.show(supportFragmentManager, "rule")
@@ -163,11 +166,52 @@
         }
     }
 
+    /**
+     * 检查更新
+     */
+    private fun checkNewVersion() {
+        HttpManager.detailVersion().request(this,success = {_,data->
+            if (data?.versionNo.isNullOrEmpty()||data!!.versionNo <= getAppVersion(this)?:"") //已经是新版本
+                startNext()
+            else if (data.versionNo == SPUtils.instance().getString(Const.IGNORE_VERSION)){ //已手动跳过当前版本
+                startNext()
+            }else
+                TipDialog.show(supportFragmentManager,data.remark,object : TipDialog.OnClickCallback{
+                    override fun onOk() {
+                        browse(data.androidFile)
+                        finish()
+                    }
+
+                    override fun onCancel() {
+                        SPUtils.instance().put(Const.IGNORE_VERSION,data?.versionNo).apply()
+                        startNext()
+                    }
+                },"立即更新","下次再说",false,"有新版本啦!")
+        }){_,_->
+            startNext()
+        }
+    }
+
+    /**
+     * 获取版本号
+     * @return 当前应用的版本号
+     */
+    private fun getAppVersion(context: Context): String? {
+        return try {
+            val manager = context.packageManager
+            val info = manager.getPackageInfo(context.packageName, 0)
+            info.versionName
+        } catch (e: Exception) {
+            e.printStackTrace()
+            "null"
+        }
+    }
+
     /***
      * 跳转下一步
      */
     private fun gotoMainOrLogin(){
-        object : CountDownTimer(2000, 500) {
+        object : CountDownTimer(1500, 500) {
             override fun onFinish() {
                 startActivity<MainActivity>("code" to code)
                 finish()

--
Gitblit v1.7.1