Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +5 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,11 @@ constructor( .sample(keyguardTransitionInteractor.startedKeyguardTransitionStep, ::Pair) .collect { pair -> val (isAbleToDream, lastStartedTransition) = pair if (isAbleToDream && lastStartedTransition.to == KeyguardState.LOCKSCREEN) { if ( isAbleToDream && lastStartedTransition.to == KeyguardState.LOCKSCREEN && lastStartedTransition.from != KeyguardState.AOD ) { keyguardTransitionRepository.startTransition( TransitionInfo( name, Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +44 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,50 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { coroutineContext.cancelChildren() } @Test fun `LOCKSCREEN to DREAMING`() = testScope.runTest { // GIVEN a device that is not dreaming or dozing keyguardRepository.setDreamingWithOverlay(false) keyguardRepository.setWakefulnessModel(startingToWake()) keyguardRepository.setDozeTransitionModel( DozeTransitionModel(from = DozeStateModel.DOZE, to = DozeStateModel.FINISH) ) runCurrent() // GIVEN a prior transition has run to LOCKSCREEN runner.startTransition( testScope, TransitionInfo( ownerName = "", from = KeyguardState.GONE, to = KeyguardState.LOCKSCREEN, animator = ValueAnimator().apply { duration = 10 interpolator = Interpolators.LINEAR }, ) ) reset(mockTransitionRepository) // WHEN the device begins to dream keyguardRepository.setDreamingWithOverlay(true) advanceUntilIdle() val info = withArgCaptor<TransitionInfo> { verify(mockTransitionRepository).startTransition(capture(), anyBoolean()) } // THEN a transition to DREAMING should occur assertThat(info.ownerName).isEqualTo("FromLockscreenTransitionInteractor") assertThat(info.from).isEqualTo(KeyguardState.LOCKSCREEN) assertThat(info.to).isEqualTo(KeyguardState.DREAMING) assertThat(info.animator).isNotNull() coroutineContext.cancelChildren() } @Test fun `LOCKSCREEN to DOZING`() = testScope.runTest { Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +5 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,11 @@ constructor( .sample(keyguardTransitionInteractor.startedKeyguardTransitionStep, ::Pair) .collect { pair -> val (isAbleToDream, lastStartedTransition) = pair if (isAbleToDream && lastStartedTransition.to == KeyguardState.LOCKSCREEN) { if ( isAbleToDream && lastStartedTransition.to == KeyguardState.LOCKSCREEN && lastStartedTransition.from != KeyguardState.AOD ) { keyguardTransitionRepository.startTransition( TransitionInfo( name, Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +44 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,50 @@ class KeyguardTransitionScenariosTest : SysuiTestCase() { coroutineContext.cancelChildren() } @Test fun `LOCKSCREEN to DREAMING`() = testScope.runTest { // GIVEN a device that is not dreaming or dozing keyguardRepository.setDreamingWithOverlay(false) keyguardRepository.setWakefulnessModel(startingToWake()) keyguardRepository.setDozeTransitionModel( DozeTransitionModel(from = DozeStateModel.DOZE, to = DozeStateModel.FINISH) ) runCurrent() // GIVEN a prior transition has run to LOCKSCREEN runner.startTransition( testScope, TransitionInfo( ownerName = "", from = KeyguardState.GONE, to = KeyguardState.LOCKSCREEN, animator = ValueAnimator().apply { duration = 10 interpolator = Interpolators.LINEAR }, ) ) reset(mockTransitionRepository) // WHEN the device begins to dream keyguardRepository.setDreamingWithOverlay(true) advanceUntilIdle() val info = withArgCaptor<TransitionInfo> { verify(mockTransitionRepository).startTransition(capture(), anyBoolean()) } // THEN a transition to DREAMING should occur assertThat(info.ownerName).isEqualTo("FromLockscreenTransitionInteractor") assertThat(info.from).isEqualTo(KeyguardState.LOCKSCREEN) assertThat(info.to).isEqualTo(KeyguardState.DREAMING) assertThat(info.animator).isNotNull() coroutineContext.cancelChildren() } @Test fun `LOCKSCREEN to DOZING`() = testScope.runTest { Loading