diff options
| author | 2022-10-17 14:56:19 +0000 | |
|---|---|---|
| committer | 2022-10-17 14:56:19 +0000 | |
| commit | e6fed446c122f03adf1893ef006eb5805c70de5f (patch) | |
| tree | 8c0c50184e748a47c5e76121a0f973250b6d13ad | |
| parent | 693d0a41312105d0c9e11e5c4927a1f373d79773 (diff) | |
| parent | 2e77f56371bb3782edd852ef0f30e2beb49b52a4 (diff) | |
Merge "Default to hiding silent notifications on lockscreen in pipeline" into tm-qpr-dev
2 files changed, 48 insertions, 22 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt index 659df24aad2a..e6dbcee10f60 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt @@ -231,7 +231,7 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor( private fun readShowSilentNotificationSetting() { val showSilentNotifs = secureSettings.getBoolForUser(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, - true, UserHandle.USER_CURRENT) + false, UserHandle.USER_CURRENT) hideSilentNotificationsOnLockscreen = !showSilentNotifs } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java index d59cc54dfe98..8b7b4dea155f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java @@ -29,6 +29,7 @@ import static com.android.systemui.statusbar.notification.collection.EntryUtilKt import static com.android.systemui.util.mockito.KotlinMockitoHelpersKt.argThat; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; @@ -305,15 +306,59 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase { } @Test - public void hideSilentNotificationsPerUserSetting() { - when(mKeyguardStateController.isShowing()).thenReturn(true); + public void hideSilentOnLockscreenSetting() { + // GIVEN an 'unfiltered-keyguard-showing' state and notifications shown on lockscreen + setupUnfilteredState(mEntry); mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); + + // WHEN the show silent notifs on lockscreen setting is false mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, false); + + // WHEN the notification is not high priority and not ambient + mEntry = new NotificationEntryBuilder() + .setImportance(IMPORTANCE_LOW) + .build(); + when(mHighPriorityProvider.isHighPriority(any())).thenReturn(false); + + // THEN filter out the entry + assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); + } + + @Test + public void showSilentOnLockscreenSetting() { + // GIVEN an 'unfiltered-keyguard-showing' state and notifications shown on lockscreen + setupUnfilteredState(mEntry); + mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); + + // WHEN the show silent notifs on lockscreen setting is true + mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, true); + + // WHEN the notification is not high priority and not ambient + mEntry = new NotificationEntryBuilder() + .setImportance(IMPORTANCE_LOW) + .build(); + when(mHighPriorityProvider.isHighPriority(mEntry)).thenReturn(false); + + // THEN do not filter out the entry + assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); + } + + @Test + public void defaultSilentOnLockscreenSettingIsHide() { + // GIVEN an 'unfiltered-keyguard-showing' state and notifications shown on lockscreen + setupUnfilteredState(mEntry); + mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); + + // WHEN the notification is not high priority and not ambient mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) .setImportance(IMPORTANCE_LOW) .build(); when(mHighPriorityProvider.isHighPriority(any())).thenReturn(false); + + // WhHEN the show silent notifs on lockscreen setting is unset + assertNull(mFakeSettings.getString(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS)); + assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @@ -431,25 +476,6 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase { } @Test - public void showSilentOnLockscreenSetting() { - // GIVEN an 'unfiltered-keyguard-showing' state - setupUnfilteredState(mEntry); - - // WHEN the notification is not high priority and not ambient - mEntry.setRanking(new RankingBuilder() - .setKey(mEntry.getKey()) - .setImportance(IMPORTANCE_LOW) - .build()); - when(mHighPriorityProvider.isHighPriority(mEntry)).thenReturn(false); - - // WHEN the show silent notifs on lockscreen setting is true - mFakeSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, true); - - // THEN do not filter out the entry - assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); - } - - @Test public void notificationVisibilityPublic() { // GIVEN a VISIBILITY_PUBLIC notification NotificationEntryBuilder entryBuilder = new NotificationEntryBuilder() |