HeyPermission.java 文件源码

java
阅读 41 收藏 0 点赞 0 评论 0

项目:hey-permission 作者:
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);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号