diff --git a/app/src/main/java/io/legado/app/lib/permission/Request.kt b/app/src/main/java/io/legado/app/lib/permission/Request.kt index 8d0aceb59..a8e8d78fb 100644 --- a/app/src/main/java/io/legado/app/lib/permission/Request.kt +++ b/app/src/main/java/io/legado/app/lib/permission/Request.kt @@ -84,18 +84,18 @@ internal class Request : OnRequestPermissionsResultCallback { } } else { if (deniedPermissions != null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R - && deniedPermissions.contains(Permissions.MANAGE_EXTERNAL_STORAGE) - ) { - source?.context?.startActivity { - putExtra( - PermissionActivity.KEY_INPUT_REQUEST_TYPE, - TYPE_MANAGE_ALL_FILES_ACCESS_PERMISSION - ) - putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS_CODE, requestCode) - putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS, deniedPermissions) + if (deniedPermissions.contains(Permissions.MANAGE_EXTERNAL_STORAGE)) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + source?.context?.startActivity { + putExtra( + PermissionActivity.KEY_INPUT_REQUEST_TYPE, + TYPE_MANAGE_ALL_FILES_ACCESS_PERMISSION + ) + putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS_CODE, requestCode) + putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS, deniedPermissions) + } } - } else if (!deniedPermissions.contains(Permissions.MANAGE_EXTERNAL_STORAGE)) { + } else if (deniedPermissions.size > 1) { source?.context?.startActivity { putExtra(PermissionActivity.KEY_INPUT_REQUEST_TYPE, TYPE_REQUEST_PERMISSION) putExtra(PermissionActivity.KEY_INPUT_PERMISSIONS_CODE, requestCode)