From f67802a41f9e01444d1115f34ecc6e1beb05fc3b Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期五, 12 五月 2023 11:24:29 +0800 Subject: [PATCH] 定位权限说明弹窗 --- app/src/main/java/com/fuban/user/ui/trip/MapTripFragment.kt | 58 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 32 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/fuban/user/ui/trip/MapTripFragment.kt b/app/src/main/java/com/fuban/user/ui/trip/MapTripFragment.kt index 5fde12f..0754904 100644 --- a/app/src/main/java/com/fuban/user/ui/trip/MapTripFragment.kt +++ b/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() { -- Gitblit v1.7.1