From d283f0fbd5e20265646eabba9a72be8c14151c2d Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Wed, 3 Sep 2014 16:48:13 +0200 Subject: [PATCH] Don't block notifications from system packages. Bug: 16703366 Change-Id: Id2f635e4e99df0c10afff8a0f5130179d381762c --- .../settings/notification/AppNotificationSettings.java | 9 ++++++++- .../settings/notification/NotificationAppList.java | 2 -- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index efa43cd033c..050008de0af 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -39,6 +39,7 @@ import android.widget.Toast; import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; import com.android.settings.notification.NotificationAppList.AppRow; import com.android.settings.notification.NotificationAppList.Backend; @@ -184,6 +185,12 @@ public class AppNotificationSettings extends SettingsPreferenceFragment { } }); } + + // Users cannot block notifications from system/signature packages + if (Utils.isSystemPackage(pm, info)) { + getPreferenceScreen().removePreference(mBlock); + mPriority.setDependency(null); // don't have it depend on a preference that's gone + } } private void toastAndFinish() { @@ -199,7 +206,7 @@ public class AppNotificationSettings extends SettingsPreferenceFragment { final String p = packages[i]; if (pkg.equals(p)) { try { - return pm.getPackageInfo(pkg, 0); + return pm.getPackageInfo(pkg, PackageManager.GET_SIGNATURES); } catch (NameNotFoundException e) { Log.w(TAG, "Failed to load package " + pkg, e); } diff --git a/src/com/android/settings/notification/NotificationAppList.java b/src/com/android/settings/notification/NotificationAppList.java index 7ca4b18136b..ad6956bd6c1 100644 --- a/src/com/android/settings/notification/NotificationAppList.java +++ b/src/com/android/settings/notification/NotificationAppList.java @@ -351,7 +351,6 @@ public class NotificationAppList extends PinnedHeaderListFragment public boolean priority; public boolean sensitive; public boolean first; // first app in section - public boolean isSystem; } private static final Comparator mRowComparator = new Comparator() { @@ -377,7 +376,6 @@ public class NotificationAppList extends PinnedHeaderListFragment row.banned = backend.getNotificationsBanned(row.pkg, row.uid); row.priority = backend.getHighPriority(row.pkg, row.uid); row.sensitive = backend.getSensitive(row.pkg, row.uid); - row.isSystem = Utils.isSystemPackage(pm, pkg); return row; }