DO NOT MERGE Fix Notification Settings when unblockable app is blocked.
am: db380fa9cb

Change-Id: I248be6a106a5dc20b5e391b2aebc267786a97e65
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 0e637a7..c7dbfdd 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -155,7 +155,7 @@
     }
 
     protected void setupImportancePrefs(boolean notBlockable, boolean notSilenceable,
-                                        int importance, boolean banned) {
+            int importance, boolean banned) {
         if (mShowSlider && !notSilenceable) {
             setVisible(mBlock, false);
             setVisible(mSilent, false);
@@ -176,10 +176,11 @@
             });
         } else {
             setVisible(mImportance, false);
-            if (notBlockable) {
+            // Hide controls that are not settable, unless they are already switched on.
+            final boolean blocked = (importance == Ranking.IMPORTANCE_NONE || banned);
+            if (notBlockable && !blocked) {
                 setVisible(mBlock, false);
             } else {
-                boolean blocked = importance == Ranking.IMPORTANCE_NONE || banned;
                 mBlock.setChecked(blocked);
                 mBlock.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                     @Override
@@ -193,10 +194,11 @@
                     }
                 });
             }
-            if (notSilenceable) {
+            final boolean silenced = (importance == Ranking.IMPORTANCE_LOW);
+            if (notSilenceable && !silenced) {
                 setVisible(mSilent, false);
             } else {
-                mSilent.setChecked(importance == Ranking.IMPORTANCE_LOW);
+                mSilent.setChecked(silenced);
                 mSilent.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                     @Override
                     public boolean onPreferenceChange(Preference preference, Object newValue) {