OSDN Git Service

Prevent users from blocking system notifications.
authorJulia Reynolds <juliacr@google.com>
Mon, 13 Jun 2016 16:49:45 +0000 (12:49 -0400)
committerJulia Reynolds <juliacr@google.com>
Mon, 13 Jun 2016 16:49:45 +0000 (12:49 -0400)
Change-Id: I1864d54b01e4db03393078504b8f592ee41ed1c2
Fixes: 29191134

src/com/android/settings/notification/NotificationSettingsBase.java

index 97a36b6..bce42eb 100644 (file)
@@ -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);
+            }
         }
     }