Commit b90455282d4b54c1a155e6e74b20ccd3251124c2
1 parent
5146a702
1 修复三星手机当打开赛事链接询问权限是否允许时点禁止后,仍不断询问权限
Showing
4 changed files
with
42 additions
and
34 deletions
config.gradle
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/OnGoingFragmentView.java
| @@ -351,10 +351,6 @@ public class OnGoingFragmentView implements MvpView { | @@ -351,10 +351,6 @@ public class OnGoingFragmentView implements MvpView { | ||
| 351 | if (runRaceDetailInfo.isIndividualAchievement()) { | 351 | if (runRaceDetailInfo.isIndividualAchievement()) { |
| 352 | //显示 | 352 | //显示 |
| 353 | fragment.binding.includePersonScore.llPersonScoreRoot.setVisibility(View.VISIBLE); | 353 | fragment.binding.includePersonScore.llPersonScoreRoot.setVisibility(View.VISIBLE); |
| 354 | - //设置完成人数 | ||
| 355 | - if (!TextUtils.isEmpty(runRaceDetailInfo.getFinishNum())) { | ||
| 356 | - fragment.binding.includeRank.tvFinishPerson.setText(runRaceDetailInfo.getFinishNum()); | ||
| 357 | - } | ||
| 358 | //设置个人行走距离 | 354 | //设置个人行走距离 |
| 359 | if (!TextUtils.isEmpty(runRaceDetailInfo.getUserMileage())) { | 355 | if (!TextUtils.isEmpty(runRaceDetailInfo.getUserMileage())) { |
| 360 | fragment.binding.includePersonScore.tvUserDistance.setText(runRaceDetailInfo.getUserMileage()); | 356 | fragment.binding.includePersonScore.tvUserDistance.setText(runRaceDetailInfo.getUserMileage()); |
| @@ -378,6 +374,10 @@ public class OnGoingFragmentView implements MvpView { | @@ -378,6 +374,10 @@ public class OnGoingFragmentView implements MvpView { | ||
| 378 | //设置是否显示排行榜 | 374 | //设置是否显示排行榜 |
| 379 | if (runRaceDetailInfo.isRanking()) { | 375 | if (runRaceDetailInfo.isRanking()) { |
| 380 | fragment.binding.includeRank.llRankRoot.setVisibility(View.VISIBLE); | 376 | fragment.binding.includeRank.llRankRoot.setVisibility(View.VISIBLE); |
| 377 | + //设置完成人数 | ||
| 378 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getFinishNum())) { | ||
| 379 | + fragment.binding.includeRank.tvFinishPerson.setText(runRaceDetailInfo.getFinishNum()); | ||
| 380 | + } | ||
| 381 | //设置第一名头像 | 381 | //设置第一名头像 |
| 382 | GlideApp.with(getContext()).load(runRaceDetailInfo.getFirstFaceUrl()).into(fragment.binding.includeRank.ivFirstPersonUrl); | 382 | GlideApp.with(getContext()).load(runRaceDetailInfo.getFirstFaceUrl()).into(fragment.binding.includeRank.ivFirstPersonUrl); |
| 383 | //设置排行榜头像 | 383 | //设置排行榜头像 |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunRaceDetailActivity.java
| @@ -2,7 +2,6 @@ package com.cnlive.moudle.pedometer.ui.activity; | @@ -2,7 +2,6 @@ package com.cnlive.moudle.pedometer.ui.activity; | ||
| 2 | 2 | ||
| 3 | import android.Manifest; | 3 | import android.Manifest; |
| 4 | import android.app.Activity; | 4 | import android.app.Activity; |
| 5 | -import android.content.Context; | ||
| 6 | import android.content.Intent; | 5 | import android.content.Intent; |
| 7 | import android.content.pm.PackageManager; | 6 | import android.content.pm.PackageManager; |
| 8 | import android.net.Uri; | 7 | import android.net.Uri; |
| @@ -10,41 +9,26 @@ import android.os.Build; | @@ -10,41 +9,26 @@ import android.os.Build; | ||
| 10 | import android.os.Bundle; | 9 | import android.os.Bundle; |
| 11 | import android.provider.Settings; | 10 | import android.provider.Settings; |
| 12 | import android.support.annotation.NonNull; | 11 | import android.support.annotation.NonNull; |
| 13 | -import android.support.annotation.Nullable; | ||
| 14 | -import android.support.design.widget.BottomSheetDialog; | ||
| 15 | import android.support.v4.app.ActivityCompat; | 12 | import android.support.v4.app.ActivityCompat; |
| 16 | import android.text.TextUtils; | 13 | import android.text.TextUtils; |
| 17 | import android.util.Log; | 14 | import android.util.Log; |
| 18 | -import android.view.View; | ||
| 19 | -import android.widget.FrameLayout; | ||
| 20 | import android.widget.Toast; | 15 | import android.widget.Toast; |
| 21 | 16 | ||
| 22 | import com.alibaba.android.arouter.facade.annotation.Route; | 17 | import com.alibaba.android.arouter.facade.annotation.Route; |
| 23 | -import com.baidu.mapapi.CoordType; | ||
| 24 | -import com.baidu.mapapi.SDKInitializer; | ||
| 25 | import com.cnlive.libs.base.ui.QMUIFragment; | 18 | import com.cnlive.libs.base.ui.QMUIFragment; |
| 26 | import com.cnlive.libs.base.ui.QMUIFragmentActivity; | 19 | import com.cnlive.libs.base.ui.QMUIFragmentActivity; |
| 27 | -import com.cnlive.libs.base.util.StatusBarUtil; | ||
| 28 | -import com.cnlive.libs.base.util.StatusBarUtil2; | ||
| 29 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | 20 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 30 | -import com.cnlive.moudle.pedometer.model.RunningMapBean; | ||
| 31 | -import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | ||
| 32 | import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment; | 21 | import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment; |
| 33 | import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment; | 22 | import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment; |
| 34 | -import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment; | ||
| 35 | -import com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView; | ||
| 36 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; | 23 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 37 | import com.cnlive.moudle.pedometer.utils.CheckUtil; | 24 | import com.cnlive.moudle.pedometer.utils.CheckUtil; |
| 38 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; | 25 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 39 | import com.cnlive.moudle.pedometer.utils.NotificationUtil; | 26 | import com.cnlive.moudle.pedometer.utils.NotificationUtil; |
| 40 | -import com.cnlive.moudle.pedometer.utils.StepUtil; | 27 | +import com.cnlive.moudle.pedometer.utils.PermissionResultUtil; |
| 41 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsListener; | 28 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsListener; |
| 42 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsUtils; | 29 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsUtils; |
| 43 | import com.example.moudle_pedometer.R; | 30 | import com.example.moudle_pedometer.R; |
| 44 | 31 | ||
| 45 | -import java.util.ArrayList; | ||
| 46 | -import java.util.List; | ||
| 47 | - | ||
| 48 | /** | 32 | /** |
| 49 | * 活动赛事详情页 | 33 | * 活动赛事详情页 |
| 50 | * | 34 | * |
| @@ -116,16 +100,15 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { | @@ -116,16 +100,15 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { | ||
| 116 | @Override | 100 | @Override |
| 117 | public void onClick(SelectDialog dialog) { | 101 | public void onClick(SelectDialog dialog) { |
| 118 | dialog.dismiss(); | 102 | dialog.dismiss(); |
| 119 | -// if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) { | ||
| 120 | -// showToast("点击权限,并打开全部权限"); | ||
| 121 | Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); | 103 | Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); |
| 122 | Uri uri = Uri.fromParts("package", getPackageName(), null); | 104 | Uri uri = Uri.fromParts("package", getPackageName(), null); |
| 123 | intent.setData(uri); | 105 | intent.setData(uri); |
| 124 | startActivityForResult(intent, 0); | 106 | startActivityForResult(intent, 0); |
| 125 | permissionRequestCount = 0; | 107 | permissionRequestCount = 0; |
| 126 | -// } | ||
| 127 | } | 108 | } |
| 128 | }); | 109 | }); |
| 110 | + selectDialog.setCancelable(false); | ||
| 111 | + selectDialog.setCanceledOnTouchOutside(false); | ||
| 129 | } | 112 | } |
| 130 | 113 | ||
| 131 | @Override | 114 | @Override |
| @@ -305,20 +288,14 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { | @@ -305,20 +288,14 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { | ||
| 305 | return; | 288 | return; |
| 306 | } | 289 | } |
| 307 | boolean isShowPermissionTip = true; | 290 | boolean isShowPermissionTip = true; |
| 308 | - for (int i = 0; i < grantResults.length; i++) {//判断权限的结果,如果有被拒绝,就return | ||
| 309 | - if (grantResults[i] == PackageManager.PERMISSION_DENIED) { | ||
| 310 | - if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) { | ||
| 311 | - isShowPermissionTip = false; | ||
| 312 | - break; | ||
| 313 | - } | ||
| 314 | - } | 291 | + boolean isAllow = PermissionResultUtil.checkPermissions(this, permissions); |
| 292 | + if (!isAllow) { | ||
| 293 | + isShowPermissionTip = false; | ||
| 315 | } | 294 | } |
| 316 | if (isShowPermissionTip) { | 295 | if (isShowPermissionTip) { |
| 317 | mPermissionsUtils.dealResult(requestCode, permissions, grantResults); | 296 | mPermissionsUtils.dealResult(requestCode, permissions, grantResults); |
| 318 | } else { | 297 | } else { |
| 319 | if (0 == permissionRequestCount) { | 298 | if (0 == permissionRequestCount) { |
| 320 | - selectDialog.setCancelable(false); | ||
| 321 | - selectDialog.setCanceledOnTouchOutside(false); | ||
| 322 | if (!selectDialog.isShowing()) { | 299 | if (!selectDialog.isShowing()) { |
| 323 | selectDialog.show(); | 300 | selectDialog.show(); |
| 324 | permissionRequestCount = 1; | 301 | permissionRequestCount = 1; |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/PermissionResultUtil.java
0 → 100644
| 1 | +package com.cnlive.moudle.pedometer.utils; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.content.pm.PackageManager; | ||
| 5 | +import android.os.Build; | ||
| 6 | +import android.support.v4.content.ContextCompat; | ||
| 7 | + | ||
| 8 | +public class PermissionResultUtil { | ||
| 9 | + | ||
| 10 | + /** | ||
| 11 | + * 检测所有的权限是否都已授权 | ||
| 12 | + * | ||
| 13 | + * @param permissions | ||
| 14 | + * @return | ||
| 15 | + */ | ||
| 16 | + public static boolean checkPermissions(Context context, String[] permissions) { | ||
| 17 | + boolean isAllow = true; | ||
| 18 | + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { | ||
| 19 | + isAllow = true; | ||
| 20 | + } else { | ||
| 21 | + for (String permission : permissions) { | ||
| 22 | + if (ContextCompat.checkSelfPermission(context, permission) != | ||
| 23 | + PackageManager.PERMISSION_GRANTED) { | ||
| 24 | + isAllow = false; | ||
| 25 | + break; | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return isAllow; | ||
| 30 | + } | ||
| 31 | +} |