18034727885
2026-09-10 9404fc9fce1d2f8678a5d1e6da2374b7a67783fe
app/src/main/java/com/driver/igotrip/ui/mine/setting/SettingActivity.kt
@@ -1,12 +1,16 @@
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
@@ -15,7 +19,9 @@
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
@@ -41,6 +47,8 @@
    private val ll_clear by lazy { find<View>(R.id.ll_clear) }
    private val ll_version by lazy { find<View>(R.id.ll_version) }
    private val tv_qa by lazy { find<View>(R.id.tv_qa) }
    private val ll_floating_window by lazy { find<View>(R.id.ll_floating_window) }
    private val sm_floating_window by lazy { find<SwitchMaterial>(R.id.sm_floating_window) }
    override fun initView() {
        setTitleText(getString(R.string.设置))
@@ -119,6 +127,36 @@
        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")
            }
        }
    }
@@ -163,4 +201,8 @@
        }
    }
    override fun onResume() {
        super.onResume()
        sm_floating_window.isChecked = Settings.canDrawOverlays(this) && CacheKey.getKeyStr(Const.REFUSE_FLOATING_WINDOW) != "1"
    }
}