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

Commit 4c7981eb authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Disable additional pkgs on DND perm page

Because they will always have access because they hold
the permission to manage notifications.

Test: manual
Fixes: 191973668
Change-Id: I456aec41b401bba6f10d9ea969e2fb8c4300825d
parent afc0bd76
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -50,13 +50,24 @@ public class ZenAccessController extends BasePreferenceController {
    }

    public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
        final ArraySet<String> requestingPackages = new ArraySet<>();
        try {
        final String[] PERM = {
                android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
        };
        return getPackagesWithPermissions(PERM);
    }

    public static Set<String> getPackagesWithManageNotifications() {
        final String[] PERM = {
                android.Manifest.permission.MANAGE_NOTIFICATIONS
        };
        return getPackagesWithPermissions(PERM);
    }

    public static Set<String> getPackagesWithPermissions(String[] permList) {
        final ArraySet<String> requestingPackages = new ArraySet<>();
        try {
            final ParceledListSlice list = AppGlobals.getPackageManager()
                    .getPackagesHoldingPermissions(PERM, 0 /*flags*/,
                    .getPackagesHoldingPermissions(permList, 0 /*flags*/,
                            ActivityManager.getCurrentUser());
            final List<PackageInfo> pkgs = list.getList();
            if (pkgs != null) {
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.notification.zen;

import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.NotificationManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -117,6 +118,7 @@ public class ZenAccessSettings extends EmptyTextSettings implements
        }
        ArraySet<String> autoApproved = new ArraySet<>();
        autoApproved.addAll(mNoMan.getEnabledNotificationListenerPackages());
        autoApproved.addAll(ZenAccessController.getPackagesWithManageNotifications());
        Collections.sort(apps, new PackageItemInfo.DisplayNameComparator(mPkgMan));
        for (ApplicationInfo app : apps) {
            final String pkg = app.packageName;