Default to hiding silent notifications on lockscreen in pipeline

Bug: 252815574
Test: atest KeyguardNotificationVisibilityProviderTest
Change-Id: I6fc51f48d6bbb4455f93230754355d3e51d45397
This commit is contained in:
Julia Tuttle
2022-10-13 21:14:46 -04:00
parent aea723c854
commit 2e77f56371
2 changed files with 48 additions and 22 deletions

View File

@@ -232,7 +232,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
}
}

View File

@@ -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));
}
@@ -430,25 +475,6 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase {
assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
}
@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