Commit 244fba607cf47e05a3b49a88366c589b50274815
1 parent
e43b6fa3
权限判断工具,增加当前是否显示弹窗判断方法
Showing
2 changed files
with
13 additions
and
2 deletions
config.gradle
lib_media/src/main/java/com/cnlive/media/utils/PermissionChecker.java
| @@ -21,7 +21,11 @@ import java.util.List; | @@ -21,7 +21,11 @@ import java.util.List; | ||
| 21 | /** | 21 | /** |
| 22 | */ | 22 | */ |
| 23 | public class PermissionChecker { | 23 | public class PermissionChecker { |
| 24 | + private static boolean hasAlertWindow = false; | ||
| 24 | 25 | ||
| 26 | + public static boolean isHasAlertWindow(){ | ||
| 27 | + return hasAlertWindow; | ||
| 28 | + } | ||
| 25 | /** | 29 | /** |
| 26 | * 检查权限的方法 | 30 | * 检查权限的方法 |
| 27 | * | 31 | * |
| @@ -78,6 +82,8 @@ public class PermissionChecker { | @@ -78,6 +82,8 @@ public class PermissionChecker { | ||
| 78 | 82 | ||
| 79 | if (needList.size() != 0) { | 83 | if (needList.size() != 0) { |
| 80 | if (needShowRationale) { | 84 | if (needShowRationale) { |
| 85 | + hasAlertWindow = true; | ||
| 86 | + | ||
| 81 | AlertDialogUtils.showTwoButtonDialog( | 87 | AlertDialogUtils.showTwoButtonDialog( |
| 82 | activity, | 88 | activity, |
| 83 | activity.getResources().getString(leftButton), | 89 | activity.getResources().getString(leftButton), |
| @@ -86,8 +92,8 @@ public class PermissionChecker { | @@ -86,8 +92,8 @@ public class PermissionChecker { | ||
| 86 | R.color.color_dialog_btn, R.color.color_ffa300, new AlertDialogUtils.DialogTwoListener() { | 92 | R.color.color_dialog_btn, R.color.color_ffa300, new AlertDialogUtils.DialogTwoListener() { |
| 87 | @Override | 93 | @Override |
| 88 | public void onClickLeft(Dialog dialog) { | 94 | public void onClickLeft(Dialog dialog) { |
| 95 | + hasAlertWindow = false; | ||
| 89 | dialog.dismiss(); | 96 | dialog.dismiss(); |
| 90 | - | ||
| 91 | if (activityFinish) { | 97 | if (activityFinish) { |
| 92 | activity.finish(); | 98 | activity.finish(); |
| 93 | } | 99 | } |
| @@ -95,6 +101,7 @@ public class PermissionChecker { | @@ -95,6 +101,7 @@ public class PermissionChecker { | ||
| 95 | 101 | ||
| 96 | @Override | 102 | @Override |
| 97 | public void onClickRight(Dialog dialog) { | 103 | public void onClickRight(Dialog dialog) { |
| 104 | + hasAlertWindow = false; | ||
| 98 | dialog.dismiss(); | 105 | dialog.dismiss(); |
| 99 | ActivityCompat.requestPermissions(activity, needList.toArray(new String[needList.size()]), requestCode); | 106 | ActivityCompat.requestPermissions(activity, needList.toArray(new String[needList.size()]), requestCode); |
| 100 | } | 107 | } |
| @@ -144,6 +151,8 @@ public class PermissionChecker { | @@ -144,6 +151,8 @@ public class PermissionChecker { | ||
| 144 | if (!result) { | 151 | if (!result) { |
| 145 | // Toast.makeText(activity, R.string.toast_imagepicker_permission_denied, Toast.LENGTH_SHORT).show(); | 152 | // Toast.makeText(activity, R.string.toast_imagepicker_permission_denied, Toast.LENGTH_SHORT).show(); |
| 146 | if (isNerverAsk) { | 153 | if (isNerverAsk) { |
| 154 | + hasAlertWindow = true; | ||
| 155 | + | ||
| 147 | AlertDialogUtils.showTwoButtonDialog( | 156 | AlertDialogUtils.showTwoButtonDialog( |
| 148 | activity, | 157 | activity, |
| 149 | activity.getResources().getString(R.string.dialog_imagepicker_permission_nerver_ask_cancel), | 158 | activity.getResources().getString(R.string.dialog_imagepicker_permission_nerver_ask_cancel), |
| @@ -152,12 +161,14 @@ public class PermissionChecker { | @@ -152,12 +161,14 @@ public class PermissionChecker { | ||
| 152 | R.color.color_dialog_btn, R.color.color_ffa300, new AlertDialogUtils.DialogTwoListener() { | 161 | R.color.color_dialog_btn, R.color.color_ffa300, new AlertDialogUtils.DialogTwoListener() { |
| 153 | @Override | 162 | @Override |
| 154 | public void onClickLeft(Dialog dialog) { | 163 | public void onClickLeft(Dialog dialog) { |
| 164 | + hasAlertWindow = false; | ||
| 155 | dialog.dismiss(); | 165 | dialog.dismiss(); |
| 156 | if (cencelFinish) activity.finish(); | 166 | if (cencelFinish) activity.finish(); |
| 157 | } | 167 | } |
| 158 | 168 | ||
| 159 | @Override | 169 | @Override |
| 160 | public void onClickRight(Dialog dialog) { | 170 | public void onClickRight(Dialog dialog) { |
| 171 | + hasAlertWindow = false; | ||
| 161 | dialog.dismiss(); | 172 | dialog.dismiss(); |
| 162 | settingPermissionActivity(activity, 1007); | 173 | settingPermissionActivity(activity, 1007); |
| 163 | if (confirmFinish) activity.finish(); | 174 | if (confirmFinish) activity.finish(); |