lmw
2025-01-10 601f14db94013373df700e007095f7f2f5ecbe24
app/src/main/java/com/sinata/xqmuse/ui/mine/SettingActivity.kt
@@ -1,35 +1,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.startActivityForResult
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() {
        tv_phone.setOnClickListener {
            startActivity<ChangePhoneActivity>()
        }
        tv_pwd.setOnClickListener {
            startActivity<ChangePwdActivity>()
        }
        iv_back.setOnClickListener { finish() }
        tv_unregister.clickDelay {
            HttpManager.getH5(3).request(this){ _, data->
            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 {
                    startActivityForResult<H5Activity>(1,"title" to "注销账号","url" to it)
                    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"
        }
    }
}