diff options
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt index 8a2216469..471f1486b 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt @@ -124,6 +124,7 @@ import com.android.permissioncontroller.permission.utils.KotlinUtils.getDefaultP import com.android.permissioncontroller.permission.utils.KotlinUtils.grantBackgroundRuntimePermissions import com.android.permissioncontroller.permission.utils.KotlinUtils.grantForegroundRuntimePermissions import com.android.permissioncontroller.permission.utils.KotlinUtils.isLocationAccuracyEnabled +import com.android.permissioncontroller.permission.utils.KotlinUtils.isPhotoPickerPromptEnabled import com.android.permissioncontroller.permission.utils.KotlinUtils.isPhotoPickerPromptSupported import com.android.permissioncontroller.permission.utils.KotlinUtils.revokeBackgroundRuntimePermissions import com.android.permissioncontroller.permission.utils.KotlinUtils.revokeForegroundRuntimePermissions @@ -367,9 +368,8 @@ class GrantPermissionsViewModel( // null == var detailMessage = RequestMessage.NO_MESSAGE - if (KotlinUtils.isPhotoPickerPromptEnabled() && - groupState.group.permGroupName == READ_MEDIA_VISUAL && - groupState.group.packageInfo.targetSdkVersion >= Build.VERSION_CODES.TIRAMISU) { + if (groupState.group.permGroupName == READ_MEDIA_VISUAL && + shouldShowPhotoPickerPromptForApp(groupState.group)) { // If the USER_SELECTED permission is user fixed and granted, or the app is only // requesting USER_SELECTED, direct straight to photo picker val userPerm = groupState.group.permissions[READ_MEDIA_VISUAL_USER_SELECTED] @@ -897,6 +897,18 @@ class GrantPermissionsViewModel( } } + private fun shouldShowPhotoPickerPromptForApp(group: LightAppPermGroup): Boolean { + if (!isPhotoPickerPromptEnabled() || + group.packageInfo.targetSdkVersion < Build.VERSION_CODES.TIRAMISU) { + return false + } + if (group.packageInfo.targetSdkVersion >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + return true + } + val userSelectedPerm = group.permissions[READ_MEDIA_VISUAL_USER_SELECTED] ?: return false + return !userSelectedPerm.isImplicit + } + private fun getStateFromPolicy(perm: String, group: LightAppPermGroup): Int { val isBackground = perm in group.backgroundPermNames var skipGroup = false |