diff options
author | Nate Myren <ntmyren@google.com> | 2023-04-14 12:00:21 -0700 |
---|---|---|
committer | Nate Myren <ntmyren@google.com> | 2023-05-10 23:14:05 +0000 |
commit | 6e5d255b68621afc3c871fb8775179c939bde409 (patch) | |
tree | a87b03b9ee5f103d81abfbd74dfec520efe6a24b | |
parent | 71340eac829e259f888a7049e6df4619a3e01b82 (diff) | |
download | Permission-6e5d255b68621afc3c871fb8775179c939bde409.tar.gz |
DO NOT MERGE Use parent MediaProvider in clone profiles
clone profiles have no MediaProvider, so they must use that
of the parent profile, or else the photo picker will be
nonfunctional
Bug: 277166838
Test: manual
Change-Id: If3dd5ffd64c44e1c8e6a6b57022ee7fa744eb9cc
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt | 13 |
1 files changed, 11 insertions, 2 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 4e88d4c9b..24dc51bdf 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt @@ -39,6 +39,7 @@ import android.health.connect.HealthPermissions.HEALTH_PERMISSION_GROUP import android.os.Build import android.os.Bundle import android.os.Process +import android.os.UserManager import android.permission.PermissionManager import android.provider.MediaStore import android.util.Log @@ -1346,10 +1347,18 @@ class GrantPermissionsViewModel( } requestInfosLiveData.update() } - activity.startActivityForResult(Intent(MediaStore.ACTION_USER_SELECT_IMAGES_FOR_APP) + // A clone profile doesn't have a MediaProvider. If this user is a clone profile, open + // the photo picker in the parent profile + val userManager = activity.getSystemService(UserManager::class.java)!! + val user = if (userManager.isCloneProfile) { + userManager.getProfileParent(Process.myUserHandle()) ?: Process.myUserHandle() + } else { + Process.myUserHandle() + } + activity.startActivityForResultAsUser(Intent(MediaStore.ACTION_USER_SELECT_IMAGES_FOR_APP) .putExtra(Intent.EXTRA_UID, packageInfo.uid) .setType(KotlinUtils.getMimeTypeForPermissions(unfilteredAffectedPermissions)), - PHOTO_PICKER_REQUEST_CODE) + PHOTO_PICKER_REQUEST_CODE, user) } /** |