lmw
2023-05-12 f67802a41f9e01444d1115f34ecc6e1beb05fc3b
app/src/main/java/com/fuban/user/ui/MainActivity.kt
@@ -30,6 +30,7 @@
import com.fuban.user.ui.crosscity.*
import com.fuban.user.dialog.BannerDialog
import com.fuban.user.dialog.AlertDialog
import com.fuban.user.dialog.TipDialog
import com.fuban.user.dialog.UserRuleDialog
import com.fuban.user.ui.login.LoginActivity
import com.fuban.user.ui.logistics.LogisticsFragment
@@ -140,18 +141,28 @@
            startActivity<ServiceActivity>()
        }
        iv_scan.setOnClickListener {
            if (checkLogin())
                RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
                    if (it)
                        startActivity<ScanActivity>(
                            "startLat" to startLat,
                            "startLon" to startLon,
                            "startName" to startName
                        )
                    else
                        myToast("请在应用权限页面开启相机权限")
            if (checkLogin()) {
                if (!RxPermissions(this).isGranted(Manifest.permission.CAMERA) //没有权限且明确拒绝就不再申请权限
                    && SPUtils.instance().getBoolean(Const.User.IS_REFUSE_PERMISSION_CAMERA)
                ) {
                    myToast("请在应用权限页面开启相机权限")
                } else {
                    RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
                        if (it)
                            startActivity<ScanActivity>(
                                "startLat" to startLat,
                                "startLon" to startLon,
                                "startName" to startName
                            )
                        else{
                            myToast("请在应用权限页面开启相机权限")
                            SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_CAMERA,true).apply()
                        }
                    }
                }
            }
        }
    }
@@ -177,16 +188,21 @@
        isOpen = intent.getBooleanExtra("isOpen", false)
        lat = intent.getDoubleExtra("lat", 0.0)
        lon = intent.getDoubleExtra("lon", 0.0)
        if (!isOpen){
        if (!isOpen) {
            initLocation {
                initLocationS { b, fucS ->
                    cl_title.visible()
                    initTwoView(b, fucS, FBApplication.lat, FBApplication.lon)
                }
            }
        }else{
        } else {
            cl_title.visible()
            initTwoView(isOpen, func?: arrayListOf(), FBApplication.lat, FBApplication.lon)
            initTwoView(
                isOpen,
                func ?: arrayListOf(),
                if (lat != 0.0) lat else FBApplication.lat,
                if (lon != 0.0) lon else FBApplication.lon
            )
        }
    }
@@ -235,16 +251,42 @@
    }
    private fun initLocation(function: () -> Unit) {
        val disposable =
            RxPermissions(this@MainActivity).request(Manifest.permission.ACCESS_FINE_LOCATION)
                .subscribe {
                    if (it) {
                        function()
                    } else {
        if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION) //没有权限且明确拒绝就不再申请权限
            && SPUtils.instance().getBoolean(Const.User.IS_REFUSE_PERMISSION_LOCATION)
        ) {
            initTwoView(false, arrayListOf(), 0.0, 0.0)
        } else {
            if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION)){
                val tipDialog = TipDialog()
                tipDialog.arguments = bundleOf("ok" to "去授权",
                    "msg" to "《福伴出行》需要获取您的当前位置信息,用于查询当前城市是否开通服务、附近是否有可用司机,并且将当前位置作为上车点以便您快速叫车。如果拒绝定位权限,您需要手动选择服务城市和上车点。")
                tipDialog.show(supportFragmentManager,"ask")
                tipDialog.setCallback(object :TipDialog.OnClickCallback{
                    override fun onOk() {
                        val disposable =
                            RxPermissions(this@MainActivity).request(Manifest.permission.ACCESS_FINE_LOCATION)
                                .subscribe {
                                    if (it) {
                                        function()
                                    } else {
                                        SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_LOCATION, true)
                                            .apply()
                                        initTwoView(false, arrayListOf(), 0.0, 0.0)
                                    }
                                }
                        onBindHelper(disposable)
                    }
                }
        onBindHelper(disposable)
                    override fun onCancel() {
                        SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_LOCATION, true)
                            .apply()
                        initTwoView(false, arrayListOf(), 0.0, 0.0)
                    }
                })
            }else{
                function()
            }
        }
    }
    private fun showAlert() {