Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.app.NotificationChannel; import android.content.Context; import android.os.Handler; import android.os.UserHandle; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.provider.Settings; import android.testing.TestableLooper; Loading @@ -51,6 +53,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.CoreStartable; import com.android.systemui.SysuiTestCase; import com.android.systemui.ambient.statusbar.shared.flag.OngoingActivityChipsOnDream; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.flags.FakeFeatureFlagsClassic; Loading Loading @@ -304,6 +307,36 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase { assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @EnableFlags(OngoingActivityChipsOnDream.FLAG_NAME) @Test public void dreaming_flagEnabled_doNotHideNotifications() { when(mStatusBarStateController.getCurrentOrUpcomingState()).thenReturn(KEYGUARD); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, false); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) .setImportance(IMPORTANCE_LOW) .build(); when(mHighPriorityProvider.isExplicitlyHighPriority(any())).thenReturn(false); when(mKeyguardUpdateMonitor.isDreaming()).thenReturn(true); assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @DisableFlags(OngoingActivityChipsOnDream.FLAG_NAME) @Test public void dreaming_flagDisabled_hideNotifications() { when(mStatusBarStateController.getCurrentOrUpcomingState()).thenReturn(KEYGUARD); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, false); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) .setImportance(IMPORTANCE_LOW) .build(); when(mHighPriorityProvider.isExplicitlyHighPriority(any())).thenReturn(false); when(mKeyguardUpdateMonitor.isDreaming()).thenReturn(true); assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @Test public void hideSilentOnLockscreenSetting() { // GIVEN an 'unfiltered-keyguard-showing' state and notifications shown on lockscreen Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt +4 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import android.provider.Settings import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.CoreStartable import com.android.systemui.ambient.statusbar.shared.flag.OngoingActivityChipsOnDream import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlagsClassic Loading Loading @@ -185,6 +186,9 @@ constructor( override fun shouldHideNotification(entry: NotificationEntry): Boolean = when { // Don't hide notifications if we're in a dream. The dream status bar needs // notifications to render ongoing call chip. OngoingActivityChipsOnDream.isEnabled && keyguardUpdateMonitor.isDreaming -> false // Keyguard state doesn't matter if the keyguard is not showing. !isLockedOrLocking -> false // Notifications not allowed on the lockscreen, always hide. Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProviderTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.app.NotificationChannel; import android.content.Context; import android.os.Handler; import android.os.UserHandle; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.provider.Settings; import android.testing.TestableLooper; Loading @@ -51,6 +53,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.CoreStartable; import com.android.systemui.SysuiTestCase; import com.android.systemui.ambient.statusbar.shared.flag.OngoingActivityChipsOnDream; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.flags.FakeFeatureFlagsClassic; Loading Loading @@ -304,6 +307,36 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase { assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @EnableFlags(OngoingActivityChipsOnDream.FLAG_NAME) @Test public void dreaming_flagEnabled_doNotHideNotifications() { when(mStatusBarStateController.getCurrentOrUpcomingState()).thenReturn(KEYGUARD); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, false); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) .setImportance(IMPORTANCE_LOW) .build(); when(mHighPriorityProvider.isExplicitlyHighPriority(any())).thenReturn(false); when(mKeyguardUpdateMonitor.isDreaming()).thenReturn(true); assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @DisableFlags(OngoingActivityChipsOnDream.FLAG_NAME) @Test public void dreaming_flagDisabled_hideNotifications() { when(mStatusBarStateController.getCurrentOrUpcomingState()).thenReturn(KEYGUARD); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, true); mSecureSettings.putBool(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, false); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) .setImportance(IMPORTANCE_LOW) .build(); when(mHighPriorityProvider.isExplicitlyHighPriority(any())).thenReturn(false); when(mKeyguardUpdateMonitor.isDreaming()).thenReturn(true); assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry)); } @Test public void hideSilentOnLockscreenSetting() { // GIVEN an 'unfiltered-keyguard-showing' state and notifications shown on lockscreen Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt +4 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import android.provider.Settings import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.CoreStartable import com.android.systemui.ambient.statusbar.shared.flag.OngoingActivityChipsOnDream import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlagsClassic Loading Loading @@ -185,6 +186,9 @@ constructor( override fun shouldHideNotification(entry: NotificationEntry): Boolean = when { // Don't hide notifications if we're in a dream. The dream status bar needs // notifications to render ongoing call chip. OngoingActivityChipsOnDream.isEnabled && keyguardUpdateMonitor.isDreaming -> false // Keyguard state doesn't matter if the keyguard is not showing. !isLockedOrLocking -> false // Notifications not allowed on the lockscreen, always hide. Loading