Suppress notif block/silence settings for essential packages.
am: acf763e996
Change-Id: I2c88494c5d1df2075bc56ed10aa88b41d6ec6113
This commit is contained in:
@@ -90,7 +90,8 @@ public class AppNotificationSettings extends NotificationSettingsBase {
|
|||||||
rows.put(mAppRow.pkg, mAppRow);
|
rows.put(mAppRow.pkg, mAppRow);
|
||||||
collectConfigActivities(rows);
|
collectConfigActivities(rows);
|
||||||
|
|
||||||
setupImportancePrefs(mAppRow.systemApp, mAppRow.appImportance, mAppRow.banned);
|
setupImportancePrefs(mAppRow.cantBlock, mAppRow.cantSilence,
|
||||||
|
mAppRow.appImportance, mAppRow.banned);
|
||||||
setupPriorityPref(mAppRow.appBypassDnd);
|
setupPriorityPref(mAppRow.appBypassDnd);
|
||||||
setupVisOverridePref(mAppRow.appVisOverride);
|
setupVisOverridePref(mAppRow.appVisOverride);
|
||||||
updateDependents(mAppRow.appImportance);
|
updateDependents(mAppRow.appImportance);
|
||||||
|
@@ -59,14 +59,14 @@ public class NotificationBackend {
|
|||||||
|
|
||||||
public AppRow loadAppRow(Context context, PackageManager pm, PackageInfo app) {
|
public AppRow loadAppRow(Context context, PackageManager pm, PackageInfo app) {
|
||||||
final AppRow row = loadAppRow(context, pm, app.applicationInfo);
|
final AppRow row = loadAppRow(context, pm, app.applicationInfo);
|
||||||
row.systemApp = Utils.isSystemPackage(context.getResources(), pm, app);
|
row.cantBlock = Utils.isSystemPackage(context.getResources(), pm, app);
|
||||||
final String[] nonBlockablePkgs = context.getResources().getStringArray(
|
final String[] nonBlockablePkgs = context.getResources().getStringArray(
|
||||||
com.android.internal.R.array.config_nonBlockableNotificationPackages);
|
com.android.internal.R.array.config_nonBlockableNotificationPackages);
|
||||||
if (nonBlockablePkgs != null) {
|
if (nonBlockablePkgs != null) {
|
||||||
int N = nonBlockablePkgs.length;
|
int N = nonBlockablePkgs.length;
|
||||||
for (int i = 0; i < N; i++) {
|
for (int i = 0; i < N; i++) {
|
||||||
if (app.packageName.equals(nonBlockablePkgs[i])) {
|
if (app.packageName.equals(nonBlockablePkgs[i])) {
|
||||||
row.systemApp = true;
|
row.cantBlock = row.cantSilence = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,8 @@ public class NotificationBackend {
|
|||||||
public Intent settingsIntent;
|
public Intent settingsIntent;
|
||||||
public boolean banned;
|
public boolean banned;
|
||||||
public boolean first; // first app in section
|
public boolean first; // first app in section
|
||||||
public boolean systemApp;
|
public boolean cantBlock;
|
||||||
|
public boolean cantSilence;
|
||||||
public int appImportance;
|
public int appImportance;
|
||||||
public boolean appBypassDnd;
|
public boolean appBypassDnd;
|
||||||
public int appVisOverride;
|
public int appVisOverride;
|
||||||
|
@@ -154,8 +154,9 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setupImportancePrefs(boolean notBlockable, int importance, boolean banned) {
|
protected void setupImportancePrefs(boolean notBlockable, boolean notSilenceable,
|
||||||
if (mShowSlider) {
|
int importance, boolean banned) {
|
||||||
|
if (mShowSlider && !notSilenceable) {
|
||||||
setVisible(mBlock, false);
|
setVisible(mBlock, false);
|
||||||
setVisible(mSilent, false);
|
setVisible(mSilent, false);
|
||||||
mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
|
mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
|
||||||
@@ -192,6 +193,9 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (notSilenceable) {
|
||||||
|
setVisible(mSilent, false);
|
||||||
|
} else {
|
||||||
mSilent.setChecked(importance == Ranking.IMPORTANCE_LOW);
|
mSilent.setChecked(importance == Ranking.IMPORTANCE_LOW);
|
||||||
mSilent.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
mSilent.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -204,6 +208,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
updateDependents(banned ? Ranking.IMPORTANCE_NONE : importance);
|
updateDependents(banned ? Ranking.IMPORTANCE_NONE : importance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user