From d1a9e3312387b6c47e6186af506787a8a66369d1 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期六, 09 十一月 2024 18:40:36 +0800
Subject: [PATCH] fix

---
 app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt |   62 ++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 17 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt
index ee08c6c..30ccab7 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt
@@ -1,5 +1,6 @@
 package com.sinata.xqmuse.ui.mine
 
+import android.content.Context
 import cn.sinata.xldutils.gone
 import cn.sinata.xldutils.utils.SPUtils
 import com.sinata.xqmuse.MainActivity
@@ -14,6 +15,7 @@
 import com.sinata.xqmuse.ui.login.LoginActivity
 import com.sinata.xqmuse.utils.CacheCleanUtil
 import com.sinata.xqmuse.utils.Const
+import com.sinata.xqmuse.utils.download.DownloadUtil
 import com.sinata.xqmuse.utils.event.EmptyEvent
 import com.sinata.xqmuse.utils.extention.clickDelay
 import kotlinx.android.synthetic.main.activity_setting.*
@@ -38,29 +40,18 @@
         }
 
         tv_clear.setOnClickListener {
-            val tipDialog = TipDialog()
-            tipDialog.arguments = bundleOf("msg" to "是否清除应用缓存?")
-            tipDialog.setCallback(object : TipDialog.OnClickCallback {
-                override fun onOk() {
-                    CacheCleanUtil.clearAllCache(this@SettingActivity)
-                    toast("清理成功")
-                }
-
-                override fun onCancel() {
-                }
-            })
-            tipDialog.show(supportFragmentManager, "tip")
+            CacheCleanUtil.clearAllCache(this@SettingActivity)
+            toast("清理成功")
         }
 
         tv_logout.setOnClickListener {
-            SPUtils.instance().put(Const.User.TOKEN,"").apply()
-            EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_HOME))
+            SPUtils.instance().put(Const.User.TOKEN, "").apply()
+            EventBus.getDefault().post(EmptyEvent(Const.EventCode.CHANGE_USER))
             startActivity<MainActivity>()
+            startActivity<LoginActivity>()
         }
 
         tv_switch.setOnClickListener {
-            SPUtils.instance().put(Const.User.TOKEN,"").apply()
-            EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_HOME))
             startActivity<MainActivity>()
             startActivity<LoginActivity>()
         }
@@ -72,16 +63,53 @@
         tv_about.setOnClickListener {
             HttpManager.getH5(LoginRuleDialog.TYPE_ABOUT).request(this){ _, data->
                 data?.let {
-                    startActivity<H5Activity>("title" to "关于心泉","url" to it.content,"showClose" to false)
+                    startActivity<H5Activity>(
+                        "title" to "关于心泉",
+                        "url" to it.content,
+                        "showClose" to false
+                    )
                 }
             }
         }
 
+        tv_update.clickDelay {
+            showDialog()
+            HttpManager.detailVersion().request(this){_,data->
+                if (data?.versionNo.isNullOrEmpty()||data!!.versionNo > getAppVersion(this@SettingActivity)?:"")
+                    toast("已经是最新版本")
+                else
+                    TipDialog.show(supportFragmentManager,"当前有新版本,是否更新?",object :TipDialog.OnClickCallback{
+                        override fun onOk() {
+                            DownloadUtil(this@SettingActivity).downloadAPK(data.androidFile, "泉疗愈")
+                            toast("后台开始下载,请等待")
+                        }
+
+                        override fun onCancel() {
+                        }
+                    })
+            }
+        }
     }
 
     override fun initView() {
         titleBar.gone()
         data = intent.getParcelableExtra("data")
+        tv_version.text = "当前版本:"+getAppVersion(this)
     }
 
+
+    /**
+     * 获取版本号
+     * @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"
+        }
+    }
 }

--
Gitblit v1.7.1