Limit unconfigurability to specified channels.

Bug: 62426259
Test: Unit test in NotificationBackendTest.java
Change-Id: I79d069cee0b641d520b02f8a25751ec3e0d4632d
This commit is contained in:
Alison Cichowlas
2017-06-08 16:17:23 -04:00
parent d77b699e60
commit 80fa6b5833
5 changed files with 164 additions and 9 deletions

View File

@@ -293,8 +293,8 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
private void setupImportanceToggle() {
mImportanceToggle = (RestrictedSwitchPreference) findPreference(KEY_ALLOW_SOUND);
mImportanceToggle.setDisabledByAdmin(mSuspendedAppsAdmin);
mImportanceToggle.setEnabled(!(mAppRow.lockedImportance
|| mImportanceToggle.isDisabledByAdmin()));
mImportanceToggle.setEnabled(isChannelConfigurable(mChannel)
&& !mImportanceToggle.isDisabledByAdmin());
mImportanceToggle.setChecked(mChannel.getImportance() >= IMPORTANCE_DEFAULT
|| mChannel.getImportance() == IMPORTANCE_UNSPECIFIED);
mImportanceToggle.setOnPreferenceChangeListener(
@@ -315,7 +315,7 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
protected void setupPriorityPref(boolean priority) {
mPriority = (RestrictedSwitchPreference) findPreference(KEY_BYPASS_DND);
mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
mPriority.setEnabled(!(mAppRow.lockedImportance || mPriority.isDisabledByAdmin()));
mPriority.setEnabled(isChannelConfigurable(mChannel) && !mPriority.isDisabledByAdmin());
mPriority.setChecked(priority);
mPriority.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
@@ -447,10 +447,15 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
return lockscreenSecure;
}
protected boolean isChannelConfigurable(NotificationChannel channel) {
return !channel.getId().equals(mAppRow.lockedChannelId);
}
protected boolean isChannelBlockable(boolean systemApp, NotificationChannel channel) {
if (!mAppRow.systemApp) {
return true;
}
return channel.isBlockableSystem()
|| channel.getImportance() == NotificationManager.IMPORTANCE_NONE;
}