From cdd1a26465d73849abf5dae167b60519fac901f2 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Mon, 13 Jun 2016 12:49:45 -0400 Subject: [PATCH] Prevent users from blocking system notifications. Change-Id: I1864d54b01e4db03393078504b8f592ee41ed1c2 Fixes: 29191134 --- .../NotificationSettingsBase.java | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java index 97a36b66696..bce42eba91f 100644 --- a/src/com/android/settings/notification/NotificationSettingsBase.java +++ b/src/com/android/settings/notification/NotificationSettingsBase.java @@ -175,32 +175,36 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen }); } else { setVisible(mImportance, false); - boolean blocked = importance == Ranking.IMPORTANCE_NONE || banned; - mBlock.setChecked(blocked); - mBlock.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - final boolean blocked = (Boolean) newValue; - final int importance = - blocked ? Ranking.IMPORTANCE_NONE :Ranking.IMPORTANCE_UNSPECIFIED; - mBackend.setImportance(mPkgInfo.packageName, mUid, importance); - updateDependents(importance); - return true; - } - }); + if (isSystemApp) { + setVisible(mBlock, false); + } else { + boolean blocked = importance == Ranking.IMPORTANCE_NONE || banned; + mBlock.setChecked(blocked); + mBlock.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + final boolean blocked = (Boolean) newValue; + final int importance = + blocked ? Ranking.IMPORTANCE_NONE : Ranking.IMPORTANCE_UNSPECIFIED; + mBackend.setImportance(mPkgInfo.packageName, mUid, importance); + updateDependents(importance); + return true; + } + }); - mSilent.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - final boolean silenced = (Boolean) newValue; - final int importance = - silenced ? Ranking.IMPORTANCE_LOW : Ranking.IMPORTANCE_UNSPECIFIED; - mBackend.setImportance(mPkgInfo.packageName, mUid, importance); - updateDependents(importance); - return true; - } - }); - updateDependents(banned ? Ranking.IMPORTANCE_NONE : importance); + mSilent.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + final boolean silenced = (Boolean) newValue; + final int importance = + silenced ? Ranking.IMPORTANCE_LOW : Ranking.IMPORTANCE_UNSPECIFIED; + mBackend.setImportance(mPkgInfo.packageName, mUid, importance); + updateDependents(importance); + return true; + } + }); + updateDependents(banned ? Ranking.IMPORTANCE_NONE : importance); + } } }