package com.igo.user.ui.mine
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.net.Uri
|
import android.os.Handler
|
import android.os.Looper
|
import android.widget.TextView
|
import androidx.core.os.bundleOf
|
import cn.sinata.xldutils.utils.CacheCleanUtil
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.optString
|
import com.igo.user.BuildConfig
|
import com.igo.user.R
|
import com.igo.user.dialog.TipDialog
|
import com.igo.user.network.HttpManager
|
import com.igo.user.network.request
|
import com.igo.user.ui.H5Activity
|
import com.igo.user.ui.TransparentStatusBarActivity
|
import com.igo.user.ui.login.LoginActivity
|
import com.igo.user.utils.Const
|
import org.jetbrains.anko.find
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class SettingActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_setting
|
|
private lateinit var phone:String
|
private val tv_language by lazy { find<TextView>(R.id.tv_language) }
|
private val tv_account by lazy { find<TextView>(R.id.tv_account) }
|
private val tv_guide by lazy { find<TextView>(R.id.tv_guide) }
|
private val tv_rule by lazy { find<TextView>(R.id.tv_rule) }
|
private val tv_recharge by lazy { find<TextView>(R.id.tv_recharge) }
|
private val tv_cancel by lazy { find<TextView>(R.id.tv_cancel) }
|
private val tv_price by lazy { find<TextView>(R.id.tv_price) }
|
private val tv_question by lazy { find<TextView>(R.id.tv_question) }
|
private val tv_privacy by lazy { find<TextView>(R.id.tv_privacy) }
|
private val tv_user_rule by lazy { find<TextView>(R.id.tv_user_rule) }
|
private val tv_about by lazy { find<TextView>(R.id.tv_about) }
|
private val tv_action by lazy { find<TextView>(R.id.tv_action) }
|
private val tv_cache by lazy { find<TextView>(R.id.tv_cache) }
|
private val tv_cache_size by lazy { find<TextView>(R.id.tv_cache_size) }
|
private val tv_update by lazy { find<TextView>(R.id.tv_update) }
|
private val tv_current by lazy { find<TextView>(R.id.tv_current) }
|
|
override fun initClick() {
|
tv_language.setOnClickListener {
|
startActivity<LanguageActivity>()
|
}
|
tv_account.setOnClickListener {
|
startActivityForResult<AccountSafeActivity>(1,"phone" to phone)
|
}
|
tv_guide.setOnClickListener {
|
HttpManager.getH5(3).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.用户指南))
|
}
|
}
|
tv_rule.setOnClickListener {
|
HttpManager.getH5(4).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.法律条款和平台规则))
|
}
|
}
|
tv_recharge.setOnClickListener {
|
HttpManager.getH5(8).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.充值领券规则))
|
}
|
}
|
tv_cancel.setOnClickListener {
|
HttpManager.getH5(7).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.取消订单规则))
|
}
|
}
|
tv_price.setOnClickListener {
|
HttpManager.getH5(13).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.计价规则))
|
}
|
}
|
tv_question.setOnClickListener {
|
HttpManager.getH5(12).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.常见问题))
|
}
|
}
|
tv_privacy.setOnClickListener {
|
HttpManager.getH5(1).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.隐私协议))
|
}
|
}
|
tv_user_rule.setOnClickListener {
|
HttpManager.getH5(2).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.用户协议))
|
}
|
}
|
tv_about.setOnClickListener {
|
HttpManager.getH5(5).request(this){ _, data->
|
val url = data?.optString("content")?:""
|
startActivity<H5Activity>("url" to url,"title" to getString(R.string.关于我们))
|
}
|
}
|
tv_action.setOnClickListener {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to getString(R.string.是否退出登录))
|
tipDialog.setCallback(object :TipDialog.OnClickCallback{
|
override fun onOk() {
|
SPUtils.instance().remove(Const.User.TOKEN).remove(Const.User.USER_ID).remove(Const.User.NO_PHONE).remove(Const.User.EMAIL).apply()
|
closeAll()
|
Handler(Looper.getMainLooper()).postDelayed({
|
gotoLogin()
|
},300)
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.show(supportFragmentManager,"out")
|
}
|
|
tv_cache.setOnClickListener {
|
CacheCleanUtil.clearAllCache(this@SettingActivity)
|
tv_cache_size.text = "0.00K"
|
}
|
|
tv_update.setOnClickListener {
|
showDialog()
|
checkVersion(true)
|
}
|
}
|
|
override fun initView() {
|
title = getString(R.string.设置)
|
phone = intent.getStringExtra("phone")?:""
|
tv_cache_size.text = CacheCleanUtil.getTotalCacheSize(this)
|
tv_current.text = "V${BuildConfig.VERSION_NAME}"
|
}
|
|
private fun checkVersion(update:Boolean){
|
HttpManager.queryNewData().request(this){_,it->
|
dismissDialog()
|
it?.run {
|
if (isFinishing) return@run
|
if (version > BuildConfig.VERSION_NAME) {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "有新版本可用,是否立即更新?")
|
tipDialog.setCallback(object :TipDialog.OnClickCallback{
|
override fun onOk() {
|
val intent = Intent()
|
intent.action = "android.intent.action.VIEW"
|
intent.data = Uri.parse(url)
|
startActivity(intent)
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.setDismissCallback(object : TipDialog.OnDismiss {
|
override fun onDismiss() {
|
if (isMustUpgrade()) {
|
closeAll()
|
}
|
}
|
})
|
tipDialog.show(supportFragmentManager,"update")
|
} else
|
myToast(getString(R.string.已经是最新版))
|
}
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK){
|
SPUtils.instance().remove(Const.User.TOKEN).remove(Const.User.USER_ID).remove(Const.User.NO_PHONE).apply()
|
val intent = Intent()
|
intent.putExtra("toLogin",true)
|
setResult(Activity.RESULT_OK, intent)
|
finish()
|
}
|
}
|
}
|