diff --git a/res/values/strings.xml b/res/values/strings.xml index 0bb3f4a7ff1..1602c02b29e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7662,7 +7662,7 @@ Override Do Not Disturb - Let these notifications continue to interrupt when Do Not Disturb is set to Priority Only + Let these notifications continue to interrupt when Do Not Disturb is on On lock screen diff --git a/src/com/android/settings/notification/DndPreferenceController.java b/src/com/android/settings/notification/DndPreferenceController.java index af60401754d..d4c7a101d22 100644 --- a/src/com/android/settings/notification/DndPreferenceController.java +++ b/src/com/android/settings/notification/DndPreferenceController.java @@ -29,10 +29,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume; public class DndPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener, - LifecycleObserver, OnResume { + LifecycleObserver { private static final String KEY_BYPASS_DND = "bypass_dnd"; - private boolean mVisualEffectsSuppressed; public DndPreferenceController(Context context, Lifecycle lifecycle, NotificationBackend backend) { @@ -42,12 +41,6 @@ public class DndPreferenceController extends NotificationPreferenceController } } - @Override - public void onResume() { - NotificationManager.Policy policy = mNm.getNotificationPolicy(); - mVisualEffectsSuppressed = policy != null && policy.suppressedVisualEffects != 0; - } - @Override public String getPreferenceKey() { return KEY_BYPASS_DND; @@ -55,12 +48,10 @@ public class DndPreferenceController extends NotificationPreferenceController @Override public boolean isAvailable() { - if (!super.isAvailable()) { + if (!super.isAvailable() || mChannel == null) { return false; } - return checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) - || (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) - && mVisualEffectsSuppressed); + return true; } public void updateState(Preference preference) { @@ -82,5 +73,4 @@ public class DndPreferenceController extends NotificationPreferenceController } return true; } - } diff --git a/tests/robotests/src/com/android/settings/notification/DndPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DndPreferenceControllerTest.java index 453a2c809e1..54dda6af881 100644 --- a/tests/robotests/src/com/android/settings/notification/DndPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/DndPreferenceControllerTest.java @@ -80,50 +80,19 @@ public class DndPreferenceControllerTest { } @Test - public void testNoCrashIfNoOnResume() { - mController.isAvailable(); - mController.updateState(mock(RestrictedSwitchPreference.class)); - mController.onPreferenceChange(mock(RestrictedSwitchPreference.class), true); - mController.onResume(); - } - - @Test - public void testIsAvailable_notIfNotImportant_noVisEffects() { + public void testIsAvailable_app() { when(mNm.getNotificationPolicy()).thenReturn(new NotificationManager.Policy(0, 0, 0, 0)); NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_LOW); - mController.onResume(); - mController.onResume(appRow, channel, null, null); + mController.onResume(appRow, null, null, null); assertFalse(mController.isAvailable()); } @Test - public void testIsAvailable_notIfNotImportant_visEffects() { + public void testIsAvailable_channel() { when(mNm.getNotificationPolicy()).thenReturn(new NotificationManager.Policy(0, 0, 0, 1)); NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_MIN); - mController.onResume(); - mController.onResume(appRow, channel, null, null); - assertFalse(mController.isAvailable()); - } - - @Test - public void testIsAvailable_importance_noVisEffects() { - when(mNm.getNotificationPolicy()).thenReturn(new NotificationManager.Policy(0, 0, 0, 0)); - NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT); - mController.onResume(); - mController.onResume(appRow, channel, null, null); - assertTrue(mController.isAvailable()); - } - - @Test - public void testIsAvailable_important_visEffects() { - when(mNm.getNotificationPolicy()).thenReturn(new NotificationManager.Policy(0, 0, 0, 1)); - assertTrue(mNm.getNotificationPolicy().suppressedVisualEffects != 0); - NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_LOW); - mController.onResume(); + NotificationChannel channel = + new NotificationChannel(DEFAULT_CHANNEL_ID, "", IMPORTANCE_MIN); mController.onResume(appRow, channel, null, null); assertTrue(mController.isAvailable()); }