private static void onRequestPermissionsResult(
@NonNull BasePermissionInvoker invoker, @IntRange(from = 0) int requestCode,
@Size(min = 1) @NonNull String[] permissions, @NonNull int[] grantResults) {
if (!invoker.needHandleThisRequestCode(requestCode)) {
return;
}
final List<String> granted = new ArrayList<>();
final List<String> denied = new ArrayList<>();
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
granted.add(permissions[i]);
} else {
denied.add(permissions[i]);
}
}
if (denied.isEmpty()) {
// all permissions were granted
invokePermissionsResultMethod(PermissionsGranted.class, invoker, requestCode, granted);
invokePermissionsResultMethod(PermissionsResult.class, invoker, requestCode, denied);
return;
}
final String[] deniedPermissions = denied.toArray(new String[denied.size()]);
boolean neverAskAgain = true;
if (invoker.shouldShowRequestPermissionRationale(deniedPermissions)) {
neverAskAgain = false;
if (invokeShowRationaleMethod(true, invoker, requestCode, deniedPermissions)) {
return;
}
}
if (neverAskAgain) {
invokePermissionsResultMethod(PermissionsNeverAskAgain.class,
invoker, requestCode, denied);
} else {
invokePermissionsResultMethod(PermissionsDenied.class, invoker, requestCode, denied);
}
invokePermissionsResultMethod(PermissionsResult.class, invoker, requestCode, denied);
}
HeyPermission.java 文件源码
java
阅读 41
收藏 0
点赞 0
评论 0
项目:hey-permission
作者:
评论列表
文章目录