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
This commit is contained in:
@@ -50,13 +50,24 @@ public class ZenAccessController extends BasePreferenceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
|
public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
|
||||||
|
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<>();
|
final ArraySet<String> requestingPackages = new ArraySet<>();
|
||||||
try {
|
try {
|
||||||
final String[] PERM = {
|
|
||||||
android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
|
|
||||||
};
|
|
||||||
final ParceledListSlice list = AppGlobals.getPackageManager()
|
final ParceledListSlice list = AppGlobals.getPackageManager()
|
||||||
.getPackagesHoldingPermissions(PERM, 0 /*flags*/,
|
.getPackagesHoldingPermissions(permList, 0 /*flags*/,
|
||||||
ActivityManager.getCurrentUser());
|
ActivityManager.getCurrentUser());
|
||||||
final List<PackageInfo> pkgs = list.getList();
|
final List<PackageInfo> pkgs = list.getList();
|
||||||
if (pkgs != null) {
|
if (pkgs != null) {
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package com.android.settings.notification.zen;
|
package com.android.settings.notification.zen;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -117,6 +118,7 @@ public class ZenAccessSettings extends EmptyTextSettings implements
|
|||||||
}
|
}
|
||||||
ArraySet<String> autoApproved = new ArraySet<>();
|
ArraySet<String> autoApproved = new ArraySet<>();
|
||||||
autoApproved.addAll(mNoMan.getEnabledNotificationListenerPackages());
|
autoApproved.addAll(mNoMan.getEnabledNotificationListenerPackages());
|
||||||
|
autoApproved.addAll(ZenAccessController.getPackagesWithManageNotifications());
|
||||||
Collections.sort(apps, new PackageItemInfo.DisplayNameComparator(mPkgMan));
|
Collections.sort(apps, new PackageItemInfo.DisplayNameComparator(mPkgMan));
|
||||||
for (ApplicationInfo app : apps) {
|
for (ApplicationInfo app : apps) {
|
||||||
final String pkg = app.packageName;
|
final String pkg = app.packageName;
|
||||||
|
Reference in New Issue
Block a user