diff options
13 files changed, 121 insertions, 49 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelTest.kt index 6cc680baf938..2de013bc7abc 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelTest.kt @@ -30,6 +30,8 @@ import com.android.systemui.communal.shared.model.CommunalSceneKey import com.android.systemui.communal.shared.model.ObservableCommunalTransitionState import com.android.systemui.coroutines.collectLastValue import com.android.systemui.deviceentry.data.repository.fakeDeviceEntryRepository +import com.android.systemui.flags.Flags +import com.android.systemui.flags.fakeFeatureFlagsClassic import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor @@ -57,7 +59,10 @@ import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) class KeyguardRootViewModelTest : SysuiTestCase() { - private val kosmos = testKosmos() + private val kosmos = + testKosmos().apply { + fakeFeatureFlagsClassic.apply { set(Flags.REFACTOR_KEYGUARD_DISMISS_INTENT, false) } + } private val testScope = kosmos.testScope private val keyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository private val keyguardInteractor = kosmos.keyguardInteractor diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java b/packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java index ef6514447561..9ebae9023d44 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardVisibilityHelper.java @@ -109,8 +109,12 @@ public class KeyguardVisibilityHelper { animProps.setDelay(0).setDuration(160); log("goingToFullShade && !keyguardFadingAway"); } - PropertyAnimator.setProperty( - mView, AnimatableProperty.ALPHA, 0f, animProps, true /* animate */); + if (KeyguardShadeMigrationNssl.isEnabled()) { + log("Using LockscreenToGoneTransition 1"); + } else { + PropertyAnimator.setProperty( + mView, AnimatableProperty.ALPHA, 0f, animProps, true /* animate */); + } } else if (oldStatusBarState == StatusBarState.SHADE_LOCKED && statusBarState == KEYGUARD) { mView.setVisibility(View.VISIBLE); mKeyguardViewVisibilityAnimating = true; @@ -179,9 +183,13 @@ public class KeyguardVisibilityHelper { mView.setVisibility(View.VISIBLE); } } else { - log("Direct set Visibility to GONE"); - mView.setVisibility(View.GONE); - mView.setAlpha(1f); + if (KeyguardShadeMigrationNssl.isEnabled()) { + log("Using LockscreenToGoneTransition 2"); + } else { + log("Direct set Visibility to GONE"); + mView.setVisibility(View.GONE); + mView.setAlpha(1f); + } } mLastOccludedState = isOccluded; diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt index a97c152ba7e3..0cf74a1ff32e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAlternateBouncerTransitionInteractor.kt @@ -24,15 +24,15 @@ import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.power.domain.interactor.PowerInteractor -import com.android.systemui.util.kotlin.Utils.Companion.sample -import com.android.systemui.util.kotlin.sample +import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine +import com.android.systemui.util.kotlin.sample as sampleUtil import com.android.wm.shell.animation.Interpolators import javax.inject.Inject import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.flow.sample import kotlinx.coroutines.launch @SysUISingleton @@ -62,14 +62,17 @@ constructor( listenForTransitionToCamera(scope, keyguardInteractor) } + @FlowPreview private fun listenForAlternateBouncerToLockscreenHubAodOrDozing() { scope.launch { keyguardInteractor.alternateBouncerShowing // Add a slight delay, as alternateBouncer and primaryBouncer showing event changes // will arrive with a small gap in time. This prevents a transition to LOCKSCREEN // happening prematurely. - .onEach { delay(50) } - .sample( + // This should eventually be removed in favor of + // [KeyguardTransitionInteractor#startDismissKeyguardTransition] + .sample(150L) + .sampleCombine( keyguardInteractor.primaryBouncerShowing, startedKeyguardTransitionStep, powerInteractor.isAwake, @@ -111,19 +114,20 @@ constructor( private fun listenForAlternateBouncerToGone() { scope.launch { - keyguardInteractor.isKeyguardGoingAway.sample(finishedKeyguardState, ::Pair).collect { - (isKeyguardGoingAway, keyguardState) -> - if (isKeyguardGoingAway && keyguardState == KeyguardState.ALTERNATE_BOUNCER) { - startTransitionTo(KeyguardState.GONE) + keyguardInteractor.isKeyguardGoingAway + .sampleUtil(finishedKeyguardState, ::Pair) + .collect { (isKeyguardGoingAway, keyguardState) -> + if (isKeyguardGoingAway && keyguardState == KeyguardState.ALTERNATE_BOUNCER) { + startTransitionTo(KeyguardState.GONE) + } } - } } } private fun listenForAlternateBouncerToPrimaryBouncer() { scope.launch { keyguardInteractor.primaryBouncerShowing - .sample(startedKeyguardTransitionStep, ::Pair) + .sampleUtil(startedKeyguardTransitionStep, ::Pair) .collect { (isPrimaryBouncerShowing, startedKeyguardState) -> if ( isPrimaryBouncerShowing && diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToGoneTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToGoneTransitionViewModel.kt index 3737e6fdf13e..d26356ebc92b 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToGoneTransitionViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToGoneTransitionViewModel.kt @@ -24,6 +24,7 @@ import com.android.systemui.keyguard.shared.model.ScrimAlpha import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition import javax.inject.Inject +import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow @@ -46,6 +47,14 @@ constructor( to = KeyguardState.GONE, ) + val lockscreenAlpha: Flow<Float> = + transitionAnimation.sharedFlow( + duration = 200.milliseconds, + onStep = { 1 - it }, + onFinish = { 0f }, + onCancel = { 1f }, + ) + /** Scrim alpha values */ val scrimAlpha: Flow<ScrimAlpha> = bouncerToGoneFlows.scrimAlpha(TO_GONE_DURATION, ALTERNATE_BOUNCER) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodBurnInViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodBurnInViewModel.kt index 780e323a96bc..828e03301b8e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodBurnInViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodBurnInViewModel.kt @@ -28,6 +28,9 @@ import com.android.systemui.keyguard.domain.interactor.BurnInInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.BurnInModel +import com.android.systemui.keyguard.shared.model.KeyguardState.ALTERNATE_BOUNCER +import com.android.systemui.keyguard.shared.model.KeyguardState.AOD +import com.android.systemui.keyguard.shared.model.KeyguardState.GONE import com.android.systemui.plugins.clocks.ClockController import com.android.systemui.res.R import javax.inject.Inject @@ -117,7 +120,10 @@ constructor( ): Flow<BurnInModel> { return combine( merge( - keyguardTransitionInteractor.goneToAodTransition.map { it.value }, + keyguardTransitionInteractor.transition(GONE, AOD).map { it.value }, + keyguardTransitionInteractor.transition(ALTERNATE_BOUNCER, AOD).map { + it.value + }, keyguardTransitionInteractor.dozeAmountTransition.map { it.value }, ) .map { dozeAmount -> Interpolators.FAST_OUT_SLOW_IN.getInterpolation(dozeAmount) }, diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt index 709e184e6e52..f8a12bd226ad 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt @@ -61,6 +61,9 @@ constructor( keyguardTransitionInteractor: KeyguardTransitionInteractor, private val notificationsKeyguardInteractor: NotificationsKeyguardInteractor, aodToLockscreenTransitionViewModel: AodToLockscreenTransitionViewModel, + lockscreenToGoneTransitionViewModel: LockscreenToGoneTransitionViewModel, + alternateBouncerToGoneTransitionViewModel: AlternateBouncerToGoneTransitionViewModel, + primaryBouncerToGoneTransitionViewModel: PrimaryBouncerToGoneTransitionViewModel, lockscreenToGlanceableHubTransitionViewModel: LockscreenToGlanceableHubTransitionViewModel, glanceableHubToLockscreenTransitionViewModel: GlanceableHubToLockscreenTransitionViewModel, screenOffAnimationController: ScreenOffAnimationController, @@ -92,10 +95,15 @@ constructor( val alpha: Flow<Float> = combine( communalInteractor.isIdleOnCommunal, + // The transitions are mutually exclusive, so they are safe to merge to get the last + // value emitted by any of them. Do not add flows that cannot make this guarantee. merge( aodAlphaViewModel.alpha, lockscreenToGlanceableHubTransitionViewModel.keyguardAlpha, glanceableHubToLockscreenTransitionViewModel.keyguardAlpha, + lockscreenToGoneTransitionViewModel.lockscreenAlpha, + primaryBouncerToGoneTransitionViewModel.lockscreenAlpha, + alternateBouncerToGoneTransitionViewModel.lockscreenAlpha, ) ) { isIdleOnCommunal, alpha -> if (isIdleOnCommunal) { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToGoneTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToGoneTransitionViewModel.kt index a26ef0755123..d981650adf60 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToGoneTransitionViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToGoneTransitionViewModel.kt @@ -46,12 +46,14 @@ constructor( val shortcutsAlpha: Flow<Float> = transitionAnimation.sharedFlow( - duration = 250.milliseconds, + duration = 200.milliseconds, onStep = { 1 - it }, onFinish = { 0f }, onCancel = { 1f }, ) + val lockscreenAlpha: Flow<Float> = shortcutsAlpha + override val deviceEntryParentViewAlpha: Flow<Float> = transitionAnimation.immediatelyTransitionTo(0f) } diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 09e4e751c5f0..e1ae2f0a3ae0 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -1020,22 +1020,24 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump instantCollapse(); } else { mView.animate().cancel(); - mView.animate() - .alpha(0f) - .setStartDelay(0) - // Translate up by 4%. - .translationY(mView.getHeight() * -0.04f) - // This start delay is to give us time to animate out before - // the launcher icons animation starts, so use that as our - // duration. - .setDuration(unlockAnimationStartDelay) - .setInterpolator(EMPHASIZED_ACCELERATE) - .withEndAction(() -> { - instantCollapse(); - mView.setAlpha(1f); - mView.setTranslationY(0f); - }) - .start(); + if (!KeyguardShadeMigrationNssl.isEnabled()) { + mView.animate() + .alpha(0f) + .setStartDelay(0) + // Translate up by 4%. + .translationY(mView.getHeight() * -0.04f) + // This start delay is to give us time to animate out before + // the launcher icons animation starts, so use that as our + // duration. + .setDuration(unlockAnimationStartDelay) + .setInterpolator(EMPHASIZED_ACCELERATE) + .withEndAction(() -> { + instantCollapse(); + mView.setAlpha(1f); + mView.setTranslationY(0f); + }) + .start(); + } } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt index 3915c3763a41..811da51b55ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt @@ -21,6 +21,7 @@ package com.android.systemui.statusbar.notification.stack.ui.viewmodel import com.android.systemui.common.shared.model.NotificationContainerBounds import com.android.systemui.communal.domain.interactor.CommunalInteractor +import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor @@ -31,20 +32,24 @@ import com.android.systemui.keyguard.shared.model.KeyguardState.AOD import com.android.systemui.keyguard.shared.model.KeyguardState.DOZING import com.android.systemui.keyguard.shared.model.KeyguardState.DREAMING import com.android.systemui.keyguard.shared.model.KeyguardState.GLANCEABLE_HUB +import com.android.systemui.keyguard.shared.model.KeyguardState.GONE import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER import com.android.systemui.keyguard.shared.model.StatusBarState.SHADE_LOCKED import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING import com.android.systemui.keyguard.shared.model.TransitionState.STARTED +import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToGoneTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.LockscreenToDreamingTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGlanceableHubTransitionViewModel +import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGoneTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.LockscreenToOccludedTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.OccludedToLockscreenTransitionViewModel +import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToGoneTransitionViewModel import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.SharedNotificationContainerInteractor import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine @@ -70,6 +75,7 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.isActive /** View-model for the shared notification container, used by both the shade and keyguard spaces */ +@SysUISingleton class SharedNotificationContainerViewModel @Inject constructor( @@ -80,6 +86,9 @@ constructor( private val shadeInteractor: ShadeInteractor, communalInteractor: CommunalInteractor, private val occludedToLockscreenTransitionViewModel: OccludedToLockscreenTransitionViewModel, + lockscreenToGoneTransitionViewModel: LockscreenToGoneTransitionViewModel, + alternateBouncerToGoneTransitionViewModel: AlternateBouncerToGoneTransitionViewModel, + primaryBouncerToGoneTransitionViewModel: PrimaryBouncerToGoneTransitionViewModel, lockscreenToOccludedTransitionViewModel: LockscreenToOccludedTransitionViewModel, dreamingToLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel, lockscreenToDreamingTransitionViewModel: LockscreenToDreamingTransitionViewModel, @@ -94,6 +103,12 @@ constructor( mapOf<Edge?, Flow<Float>>( Edge(from = LOCKSCREEN, to = DREAMING) to lockscreenToDreamingTransitionViewModel.lockscreenAlpha, + Edge(from = LOCKSCREEN, to = GONE) to + lockscreenToGoneTransitionViewModel.lockscreenAlpha, + Edge(from = ALTERNATE_BOUNCER, to = GONE) to + alternateBouncerToGoneTransitionViewModel.lockscreenAlpha, + Edge(from = PRIMARY_BOUNCER, to = GONE) to + primaryBouncerToGoneTransitionViewModel.lockscreenAlpha, Edge(from = DREAMING, to = LOCKSCREEN) to dreamingToLockscreenTransitionViewModel.lockscreenAlpha, Edge(from = LOCKSCREEN, to = OCCLUDED) to diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt index 28127186706b..57956c1ecaf6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt @@ -65,6 +65,7 @@ import kotlinx.coroutines.cancelChildren import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest @@ -397,7 +398,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the device begins to dream keyguardRepository.setDreamingWithOverlay(true) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { @@ -428,7 +429,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the device begins to dream and the dream is lockscreen hosted keyguardRepository.setDreamingWithOverlay(true) keyguardRepository.setIsActiveDreamLockscreenHosted(true) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { @@ -515,7 +516,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the lockscreen hosted dream stops keyguardRepository.setIsActiveDreamLockscreenHosted(false) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { @@ -710,7 +711,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN a signal comes that dreaming is enabled keyguardRepository.setDreamingWithOverlay(true) - advanceUntilIdle() + advanceTimeBy(100L) // THEN the transition is ignored verify(transitionRepository, never()).startTransition(any()) @@ -865,7 +866,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the device begins to dream keyguardRepository.setDreamingWithOverlay(true) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { @@ -896,7 +897,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the device begins to dream with the lockscreen hosted dream keyguardRepository.setDreamingWithOverlay(true) keyguardRepository.setIsActiveDreamLockscreenHosted(true) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { @@ -969,7 +970,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { } @Test - fun alternateBoucnerToAod() = + fun alternateBouncerToAod() = testScope.runTest { // GIVEN a prior transition has run to ALTERNATE_BOUNCER bouncerRepository.setAlternateVisible(true) @@ -985,7 +986,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the alternateBouncer stops showing bouncerRepository.setAlternateVisible(false) - advanceUntilIdle() + advanceTimeBy(200L) val info = withArgCaptor<TransitionInfo> { @@ -1018,7 +1019,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the alternateBouncer stops showing bouncerRepository.setAlternateVisible(false) - advanceUntilIdle() + advanceTimeBy(200L) val info = withArgCaptor<TransitionInfo> { @@ -1048,7 +1049,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the alternateBouncer stops showing bouncerRepository.setAlternateVisible(false) - advanceUntilIdle() + advanceTimeBy(200L) val info = withArgCaptor<TransitionInfo> { @@ -1086,7 +1087,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the alternateBouncer stops showing bouncerRepository.setAlternateVisible(false) - advanceUntilIdle() + advanceTimeBy(200L) val info = withArgCaptor<TransitionInfo> { @@ -1910,7 +1911,7 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { // WHEN the device begins to dream keyguardRepository.setDreamingWithOverlay(true) - advanceUntilIdle() + advanceTimeBy(100L) val info = withArgCaptor<TransitionInfo> { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt index 32c727c70172..ff882b19ab13 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt @@ -69,7 +69,10 @@ class SharedNotificationContainerViewModelTest : SysuiTestCase() { val kosmos = testKosmos().apply { - fakeFeatureFlagsClassic.apply { set(Flags.FULL_SCREEN_USER_SWITCHER, false) } + fakeFeatureFlagsClassic.apply { + set(Flags.FULL_SCREEN_USER_SWITCHER, false) + set(Flags.REFACTOR_KEYGUARD_DISMISS_INTENT, false) + } } init { diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt index d376f126e2c9..24bb9c5008bf 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt @@ -38,6 +38,9 @@ val Kosmos.keyguardRootViewModel by Fixture { keyguardTransitionInteractor = keyguardTransitionInteractor, notificationsKeyguardInteractor = notificationsKeyguardInteractor, aodToLockscreenTransitionViewModel = aodToLockscreenTransitionViewModel, + lockscreenToGoneTransitionViewModel = lockscreenToGoneTransitionViewModel, + alternateBouncerToGoneTransitionViewModel = alternateBouncerToGoneTransitionViewModel, + primaryBouncerToGoneTransitionViewModel = primaryBouncerToGoneTransitionViewModel, screenOffAnimationController = screenOffAnimationController, aodBurnInViewModel = aodBurnInViewModel, aodAlphaViewModel = aodAlphaViewModel, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt index 549a77513e9c..30d4105e8ca1 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt @@ -19,13 +19,16 @@ package com.android.systemui.statusbar.notification.stack.ui.viewmodel import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor +import com.android.systemui.keyguard.ui.viewmodel.alternateBouncerToGoneTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.aodBurnInViewModel import com.android.systemui.keyguard.ui.viewmodel.dreamingToLockscreenTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.glanceableHubToLockscreenTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.lockscreenToDreamingTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.lockscreenToGlanceableHubTransitionViewModel +import com.android.systemui.keyguard.ui.viewmodel.lockscreenToGoneTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.lockscreenToOccludedTransitionViewModel import com.android.systemui.keyguard.ui.viewmodel.occludedToLockscreenTransitionViewModel +import com.android.systemui.keyguard.ui.viewmodel.primaryBouncerToGoneTransitionViewModel import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.kosmos.applicationCoroutineScope @@ -41,6 +44,9 @@ val Kosmos.sharedNotificationContainerViewModel by Fixture { shadeInteractor = shadeInteractor, communalInteractor = communalInteractor, occludedToLockscreenTransitionViewModel = occludedToLockscreenTransitionViewModel, + lockscreenToGoneTransitionViewModel = lockscreenToGoneTransitionViewModel, + alternateBouncerToGoneTransitionViewModel = alternateBouncerToGoneTransitionViewModel, + primaryBouncerToGoneTransitionViewModel = primaryBouncerToGoneTransitionViewModel, lockscreenToOccludedTransitionViewModel = lockscreenToOccludedTransitionViewModel, dreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel, lockscreenToDreamingTransitionViewModel = lockscreenToDreamingTransitionViewModel, |