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

Commit d430f1a0 authored by Ruben Brunk's avatar Ruben Brunk
Browse files

Remove coarse location pre-grant for preinstalled VrListenerServices.

Bug: 28919229
Change-Id: I97393308129c65ef2822014775d3e77e25dc21e6
parent 931a7c03
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -218,7 +218,6 @@ public class VrManagerService extends SystemService implements EnabledComponentC
                    String packageName = mNotificationAccessPackageToUserId.keyAt(i);
                    revokeNotificationListenerAccess(packageName, grantUserId);
                    revokeNotificationPolicyAccess(packageName);
                    revokeCoarseLocationPermissionIfNeeded(packageName, grantUserId);
                    mNotificationAccessPackageToUserId.removeAt(i);
                }
            }
@@ -227,7 +226,6 @@ public class VrManagerService extends SystemService implements EnabledComponentC
                if (!packageNames.contains(pkg)) {
                    revokeNotificationListenerAccess(pkg, currentUserId);
                    revokeNotificationPolicyAccess(pkg);
                    revokeCoarseLocationPermissionIfNeeded(pkg, currentUserId);
                    mNotificationAccessPackageToUserId.remove(pkg);
                }
            }
@@ -235,7 +233,6 @@ public class VrManagerService extends SystemService implements EnabledComponentC
                if (!allowed.contains(pkg)) {
                    grantNotificationPolicyAccess(pkg);
                    grantNotificationListenerAccess(pkg, currentUserId);
                    grantCoarseLocationPermissionIfNeeded(pkg, currentUserId);
                    mNotificationAccessPackageToUserId.put(pkg, currentUserId);
                }
            }
@@ -760,22 +757,6 @@ public class VrManagerService extends SystemService implements EnabledComponentC
                flatSettings, userId);
    }

    private void grantCoarseLocationPermissionIfNeeded(String pkg, int userId) {
        // Don't clobber the user if permission set in current state explicitly
        if (!isPermissionUserUpdated(Manifest.permission.ACCESS_COARSE_LOCATION, pkg, userId)) {
            mContext.getPackageManager().grantRuntimePermission(pkg,
                    Manifest.permission.ACCESS_COARSE_LOCATION, new UserHandle(userId));
        }
    }

    private void revokeCoarseLocationPermissionIfNeeded(String pkg, int userId) {
        // Don't clobber the user if permission set in current state explicitly
        if (!isPermissionUserUpdated(Manifest.permission.ACCESS_COARSE_LOCATION, pkg, userId)) {
            mContext.getPackageManager().revokeRuntimePermission(pkg,
                    Manifest.permission.ACCESS_COARSE_LOCATION, new UserHandle(userId));
        }
    }

    private boolean isPermissionUserUpdated(String permission, String pkg, int userId) {
        final int flags = mContext.getPackageManager().getPermissionFlags(
                permission, pkg, new UserHandle(userId));