package com.driver.igotrip.ui.mine.setting import android.content.Intent import android.provider.Settings import android.view.View import android.widget.TextView import androidx.core.net.toUri import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.getVersionName import com.driver.emanagercar.ui.base.BaseWebActivity import com.driver.igotrip.R import com.driver.igotrip.base.BaseEvent import com.driver.igotrip.base.Const import com.driver.igotrip.base.MyApplication import com.driver.igotrip.base.MyBaseActivity import com.driver.igotrip.bean.AgreeBean import com.driver.igotrip.bean.VersionBean import com.driver.igotrip.netUtls.Api import com.driver.igotrip.netUtls.callNet import com.driver.igotrip.netUtls.getMapByAny import com.driver.igotrip.ui.DialogUtil import com.driver.igotrip.utils.Cache.CacheKey import com.driver.igotrip.utils.glide.GlideCacheUtil import com.google.android.material.switchmaterial.SwitchMaterial import com.tencent.mm.opensdk.modelbase.BaseReq import com.tencent.mm.opensdk.modelbase.BaseResp import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.browse import org.jetbrains.anko.find import org.jetbrains.anko.startActivity import org.jetbrains.anko.toast class SettingActivity : MyBaseActivity(), IWXAPIEventHandler { override fun setContentView() { setContentView(R.layout.activity_setting) } private val tv_version_code by lazy { find(R.id.tv_version_code) } private val tv_cache by lazy { find(R.id.tv_cache) } private val tv_user_to by lazy { find(R.id.tv_user_to) } private val tv_rule by lazy { find(R.id.tv_rule) } private val tv_more_langh by lazy { find(R.id.tv_more_langh) } private val tv_about_me by lazy { find(R.id.tv_about_me) } private val tv_yh by lazy { find(R.id.tv_yh) } private val tv_about_ys by lazy { find(R.id.tv_about_ys) } private val ll_clear by lazy { find(R.id.ll_clear) } private val ll_version by lazy { find(R.id.ll_version) } private val tv_qa by lazy { find(R.id.tv_qa) } private val ll_floating_window by lazy { find(R.id.ll_floating_window) } private val sm_floating_window by lazy { find(R.id.sm_floating_window) } override fun initView() { setTitleText(getString(R.string.设置)) tv_version_code.text = getVersionName() tv_cache.text = GlideCacheUtil.getInstance().getCacheSize(MyApplication.getInstance()) } override fun setOnclick() { tv_user_to.setOnClickListener { var map = getMapByAny() map["type"] = 3 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) BaseWebActivity.to(mContext, data.data.content, getString(R.string.用户指南), "1") } } tv_rule.setOnClickListener { var map = getMapByAny() map["type"] = 4 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) with(BaseWebActivity) { to(mContext, data.data.content, getString(R.string.法律条款和平台规则), "1") } } } tv_more_langh.clickDelay { startActivity() } tv_about_me.setOnClickListener { var map = getMapByAny() map["type"] = 5 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) BaseWebActivity.to(mContext, data.data.content, getString(R.string.关于我们), "1") } } tv_yh.setOnClickListener { var map = getMapByAny() map["type"] = 2 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) BaseWebActivity.to(mContext, data.data.content, getString(R.string.用户协议), "1") } } tv_about_ys.setOnClickListener { var map = getMapByAny() map["type"] = 1 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) BaseWebActivity.to(mContext, data.data.content, getString(R.string.隐私协议), "1") } } tv_qa.setOnClickListener { var map = getMapByAny() map["type"] = 12 callNet(Api.queryByType, map) { var data = gson.fromJson(it, AgreeBean::class.java) BaseWebActivity.to(mContext, data.data.content, getString(R.string.常见问题), "1") } } ll_clear.setOnClickListener { DialogUtil.getDelAndSureDialog(this, getString(R.string.确定清除缓存), {}, { GlideCacheUtil.getInstance().clearImageAllCache(MyApplication.getInstance()) tv_cache.text = "0KB" toast(getString(R.string.清除缓存成功)) }) } ll_version.setOnClickListener { callVersion() } sm_floating_window.setOnCheckedChangeListener { _, isChecked -> MyApplication.couldShowFloatingWindow = isChecked } ll_floating_window.setOnClickListener { if (!sm_floating_window.isChecked) { if (CacheKey.getKeyStr(Const.REFUSE_FLOATING_WINDOW) != "1") { //用户没有拒绝过,但是没有授予权限 val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, "package:${packageName}".toUri()).apply { putExtra("package", packageName) } startActivity(intent) } else { //用户拒绝过 CacheKey.putKeyStr(Const.REFUSE_FLOATING_WINDOW, "") if (!Settings.canDrawOverlays(this)) { //没有权限 val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, "package:${packageName}".toUri()).apply { putExtra("package", packageName) } startActivity(intent) } else { //有权限 sm_floating_window.isChecked = true } } } else { sm_floating_window.isChecked = false CacheKey.putKeyStr(Const.REFUSE_FLOATING_WINDOW, "1") } } } override fun onResp(p0: BaseResp?) { } override fun onReq(p0: BaseReq?) { } private fun callVersion() { val map = getMapByAny() // map["id"] = CacheKey.getUserId() callNet(isUseAllTrustService = true, showDialog = true, api = Api.queryNewData, map = map, clickAction = { val data = gson.fromJson(it, VersionBean::class.java) if (data.data.version != "" && data.data.version != getVersionName()) { when (data.data.mandatory) { 2 -> { DialogUtil.getDelAndSureDialog(this, getString(R.string.新版本更新), data.data.content, {}, { browse(data.data.url) }) } 1 -> { DialogUtil.getDelAndSureDialog(this, getString(R.string.新版本更新), data.data.content, { EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP)) }, { browse(data.data.url) }) } else -> { // toast("已经是最新版本") } } } else { toast(getString(R.string.已经是最新版)) } }) { _, _ -> } } override fun onResume() { super.onResume() sm_floating_window.isChecked = Settings.canDrawOverlays(this) && CacheKey.getKeyStr(Const.REFUSE_FLOATING_WINDOW) != "1" } }