lmw
2025-02-06 ab2842d427504c531c79ddb9c5a9ef1df7833014
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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
import com.sinata.xqmuse.R
import com.sinata.xqmuse.dialog.LoginRuleDialog
import com.sinata.xqmuse.dialog.TipDialog
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.MineInfo
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.H5Activity
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
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.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.browse
import org.jetbrains.anko.bundleOf
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
 
class SettingActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_setting
    private var data : MineInfo? = null
    private var isPush = true //个性推荐
 
    override fun initClick() {
        iv_back.setOnClickListener { finish() }
        tv_unregister.clickDelay {
            startActivity<UnregisterActivity>()
        }
 
        tv_bind.setOnClickListener {
            if (data!=null)
                startActivity<BindActivity>()
        }
 
        tv_clear.setOnClickListener {
            CacheCleanUtil.clearAllCache(this@SettingActivity)
            toast("清理成功")
        }
 
        tv_logout.setOnClickListener {
            SPUtils.instance().put(Const.User.TOKEN, "").apply()
            EventBus.getDefault().post(EmptyEvent(Const.EventCode.CHANGE_USER))
            startActivity<MainActivity>()
            startActivity<LoginActivity>()
        }
 
        tv_switch.setOnClickListener {
            startActivity<MainActivity>()
            startActivity<LoginActivity>()
        }
 
        iv_push.setOnClickListener {
            isPush = !isPush
            iv_push.setImageResource(if (isPush) R.mipmap.sw_on else R.mipmap.sw_off)
            SPUtils.instance().put(Const.IS_PUSH,isPush).apply()
        }
 
        tv_rule.setOnClickListener {
            startActivity<RulesActivity>()
        }
 
        tv_about.setOnClickListener {
            HttpManager.getH5(LoginRuleDialog.TYPE_ABOUT).request(this){ _, data->
                data?.let {
                    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("后台开始下载,请等待")
                            browse(data.androidFile)
                        }
 
                        override fun onCancel() {
                        }
                    })
            }
        }
    }
 
    override fun initView() {
        titleBar.gone()
        data = intent.getParcelableExtra("data")
        tv_version.text = "当前版本:"+getAppVersion(this)
        isPush = SPUtils.instance().getBoolean(Const.IS_PUSH,true)
        iv_push.setImageResource(if (isPush) R.mipmap.sw_on else R.mipmap.sw_off)
    }
 
 
    /**
     * 获取版本号
     * @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"
        }
    }
}