lmw
2023-05-12 f67802a41f9e01444d1115f34ecc6e1beb05fc3b
app/src/main/java/com/fuban/user/ui/trip/MapTripFragment.kt
@@ -19,10 +19,7 @@
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.ioScheduler
import cn.sinata.xldutils.rxutils.ResultException
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.optInt
import cn.sinata.xldutils.utils.toTime
import cn.sinata.xldutils.utils.*
import cn.sinata.xldutils.visible
import com.amap.api.location.AMapLocationClient
import com.amap.api.location.AMapLocationClientOption
@@ -112,8 +109,8 @@
        mMapView.onCreate(savedInstanceState)
        getNotice()
        getBottomAds()
        initMap()
        getRxPermission {
            initMap()
            initLocation()
        }
        initTab()
@@ -381,17 +378,23 @@
    }
    fun getRxPermission(function: () -> Unit) {
        val disposable =
            RxPermissions(activity!!).request(Manifest.permission.ACCESS_FINE_LOCATION)
                .subscribe {
                    if (it) {
                        function()
                    } else {
                        function()
                        myToast("没有定位权限")
        if (!RxPermissions(requireActivity()).isGranted(Manifest.permission.ACCESS_FINE_LOCATION) //没有权限且明确拒绝就不再申请权限
            && SPUtils.instance().getBoolean(Const.User.IS_REFUSE_PERMISSION_LOCATION)){
            function()
//            myToast("没有定位权限")
        }else{
            val disposable =
                RxPermissions(activity!!).request(Manifest.permission.ACCESS_FINE_LOCATION)
                    .subscribe {
                        if (it) {
                            function()
                        } else {
                            SPUtils.instance().put(Const.User.IS_REFUSE_PERMISSION_LOCATION,true).apply()
                            function()
                        }
                    }
                }
        onBindHelper(disposable)
            onBindHelper(disposable)
        }
    }
    private var locCount = 0L //定位次数
@@ -400,7 +403,7 @@
        val myLocationStyle = MyLocationStyle()
        myLocationStyle.strokeColor(resources.getColor(R.color.colorBrown))
        myLocationStyle.radiusFillColor(resources.getColor(R.color.colorTransBrown))
        myLocationStyle.interval(3000)
        myLocationStyle.interval(10000)
        myLocationStyle.anchor(0.5f, 0.5f)
        myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER)//
        myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.mipmap.icon_coordinate))
@@ -419,6 +422,7 @@
            FBApplication.address = it.address
            FBApplication.cityCode = it.extras.getString("adcode") ?: ""
            if (locCount < 1) {
                Log.e(Const.Tag, "首页:lat:" + mainActivity.lat + ",lon:" + mainActivity.lon)
                if (mainActivity.lat != 0.0)
                    aMap.animateCamera(
                        CameraUpdateFactory.newLatLngZoom(
@@ -470,18 +474,20 @@
    }
    private fun showChangeCity() {
        val tipDialog = TipDialog()
        tipDialog.arguments = bundleOf("msg" to "当前城市与定位城市不符,是否切换?")
        tipDialog.setCallback(object : TipDialog.OnClickCallback {
            override fun onOk() {
                activity!!.startActivityForResult<ChooseCityActivity>(501)
            }
        if ((requireActivity() as MainActivity).isOpen){
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "当前城市与定位城市不符,是否切换?")
            tipDialog.setCallback(object : TipDialog.OnClickCallback {
                override fun onOk() {
                    activity!!.startActivityForResult<ChooseCityActivity>(501)
                }
            override fun onCancel() {
                override fun onCancel() {
            }
        })
        tipDialog.show(childFragmentManager, "clear")
                }
            })
            tipDialog.show(childFragmentManager, "clear")
        }
    }
    private fun initTab() {