Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0afa5059 authored by Jay Sullivan's avatar Jay Sullivan Committed by Android (Google) Code Review
Browse files

Merge "Don't re-prompt for VISUAL/AURAL after app upgrade" into tm-dev

parents 80af2fac 3fd4c55d
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -195,6 +195,11 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt

    /** All storage permissions */
    private static final List<String> STORAGE_PERMISSIONS = new ArrayList<>();

    private static final Set<String> READ_MEDIA_AURAL_PERMISSIONS = new ArraySet<>();

    private static final Set<String> READ_MEDIA_VISUAL_PERMISSIONS = new ArraySet<>();

    /** All nearby devices permissions */
    private static final List<String> NEARBY_DEVICES_PERMISSIONS = new ArrayList<>();

@@ -222,10 +227,10 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
                Manifest.permission.INTERACT_ACROSS_USERS_FULL);
        STORAGE_PERMISSIONS.add(Manifest.permission.READ_EXTERNAL_STORAGE);
        STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        STORAGE_PERMISSIONS.add(Manifest.permission.ACCESS_MEDIA_LOCATION);
        STORAGE_PERMISSIONS.add(Manifest.permission.READ_MEDIA_AUDIO);
        STORAGE_PERMISSIONS.add(Manifest.permission.READ_MEDIA_IMAGES);
        STORAGE_PERMISSIONS.add(Manifest.permission.READ_MEDIA_VIDEO);
        READ_MEDIA_AURAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_AUDIO);
        READ_MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_VIDEO);
        READ_MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_IMAGES);
        READ_MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.ACCESS_MEDIA_LOCATION);
        NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.BLUETOOTH_ADVERTISE);
        NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.BLUETOOTH_CONNECT);
        NEARBY_DEVICES_PERMISSIONS.add(Manifest.permission.BLUETOOTH_SCAN);
@@ -2070,7 +2075,10 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
                PermissionInfo permInfo = getPermissionInfo(
                        newPackage.getRequestedPermissions().get(i),
                        newPackage.getPackageName(), 0);
                if (permInfo == null || !STORAGE_PERMISSIONS.contains(permInfo.name)) {
                boolean isStorageOrMedia = STORAGE_PERMISSIONS.contains(permInfo.name)
                        || READ_MEDIA_AURAL_PERMISSIONS.contains(permInfo.name)
                        || READ_MEDIA_VISUAL_PERMISSIONS.contains(permInfo.name);
                if (permInfo == null || !isStorageOrMedia) {
                    continue;
                }

@@ -3144,7 +3152,9 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
                }
                if (bp.isRuntime()) {

                    if (!newPerm.equals(Manifest.permission.ACTIVITY_RECOGNITION)) {
                    if (!(newPerm.equals(Manifest.permission.ACTIVITY_RECOGNITION)
                            || READ_MEDIA_AURAL_PERMISSIONS.contains(newPerm)
                            || READ_MEDIA_VISUAL_PERMISSIONS.contains(newPerm))) {
                        ps.updatePermissionFlags(bp,
                                FLAG_PERMISSION_REVOKE_WHEN_REQUESTED,
                                FLAG_PERMISSION_REVOKE_WHEN_REQUESTED);