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

Commit e2cb18be authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by Android (Google) Code Review
Browse files

Merge "Do not show re-up for pre-grants" into qt-dev

parents b2e2a5d9 50b54d9a
Loading
Loading
Loading
Loading
+18 −23
Original line number Diff line number Diff line
@@ -467,14 +467,7 @@ public class LocationAccessCheck {

                UserPackage userPkg = new UserPackage(mContext, pkg, user);

                AppPermissionGroup bgLocationGroup;
                try {
                    bgLocationGroup = userPkg.getBackgroundLocationGroup();
                } catch (PackageManager.NameNotFoundException e) {
                    // Package was uninstalled
                    continue;
                }

                AppPermissionGroup bgLocationGroup = userPkg.getBackgroundLocationGroup();
                // Do not show notification that do not request the background permission anymore
                if (bgLocationGroup == null) {
                    continue;
@@ -491,6 +484,14 @@ public class LocationAccessCheck {
                    continue;
                }

                // Never show notification for pregranted permissions as warning the user via the
                // notification and then warning the user again when revoking the permission is
                // confusing
                if (userPkg.getLocationGroup().hasGrantedByDefaultPermission()
                    && bgLocationGroup.hasGrantedByDefaultPermission()) {
                    continue;
                }

                int numOps = ops.getOpCount();
                for (int opNum = 0; opNum < numOps; opNum++) {
                    AppOpsManager.HistoricalOp op = ops.getOpAt(opNum);
@@ -630,14 +631,10 @@ public class LocationAccessCheck {
        for (UserPackage userPkg : alreadyNotifiedPkgs) {
            throwInterruptedExceptionIfTaskIsCanceled();

            try {
            AppPermissionGroup bgLocationGroup = userPkg.getBackgroundLocationGroup();
            if (bgLocationGroup == null || !bgLocationGroup.areRuntimePermissionsGranted()) {
                packagesToRemove.add(userPkg);
            }
            } catch (PackageManager.NameNotFoundException e) {
                packagesToRemove.add(userPkg);
            }
        }

        if (!packagesToRemove.isEmpty()) {
@@ -917,13 +914,14 @@ public class LocationAccessCheck {
         * {@link android.Manifest.permission#ACCESS_FINE_LOCATION} and this user package.
         *
         * @return The app permission group or {@code null} if the app does not request location
         *
         * @throws PackageManager.NameNotFoundException if package/user does not exist
         */
        @Nullable AppPermissionGroup getLocationGroup()
                throws PackageManager.NameNotFoundException {
        @Nullable AppPermissionGroup getLocationGroup() {
            try {
                return AppPermissionGroup.create(mContext, getPackageInfo(), ACCESS_FINE_LOCATION,
                    false);
            } catch (PackageManager.NameNotFoundException e) {
                return null;
            }
        }

        /**
@@ -932,11 +930,8 @@ public class LocationAccessCheck {
         *
         * @return The app permission group or {@code null} if the app does not request background
         *         location
         *
         * @throws PackageManager.NameNotFoundException if package/user does not exist
         */
        @Nullable AppPermissionGroup getBackgroundLocationGroup()
                throws PackageManager.NameNotFoundException {
        @Nullable AppPermissionGroup getBackgroundLocationGroup() {
            AppPermissionGroup locationGroup = getLocationGroup();
            if (locationGroup == null) {
                return null;