Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +40 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import com.android.keyguard.KeyguardSecurityModel.SecurityMode.PIN import com.android.systemui.Flags import com.android.systemui.Flags.FLAG_COMMUNAL_HUB import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2 import com.android.systemui.Flags.glanceableHubV2 import com.android.systemui.SysuiTestCase import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.communal.domain.interactor.CommunalSceneTransitionInteractor Loading @@ -34,6 +36,8 @@ import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.communal.domain.interactor.communalSceneInteractor import com.android.systemui.communal.domain.interactor.communalSceneTransitionInteractor import com.android.systemui.communal.domain.interactor.setCommunalAvailable import com.android.systemui.communal.domain.interactor.setCommunalV2ConfigEnabled import com.android.systemui.communal.domain.interactor.setCommunalV2Enabled import com.android.systemui.communal.shared.model.CommunalScenes import com.android.systemui.flags.BrokenWithSceneContainer import com.android.systemui.flags.DisableSceneContainer Loading Loading @@ -153,6 +157,9 @@ class KeyguardTransitionScenariosTest(flags: FlagsParameterization?) : SysuiTest if (!SceneContainerFlag.isEnabled) { mSetFlagsRule.disableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) } if (glanceableHubV2()) { kosmos.setCommunalV2ConfigEnabled(true) } featureFlags = FakeFeatureFlags() fromLockscreenTransitionInteractor.start() Loading Loading @@ -1946,6 +1953,39 @@ class KeyguardTransitionScenariosTest(flags: FlagsParameterization?) : SysuiTest coroutineContext.cancelChildren() } @Test @DisableSceneContainer @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_GLANCEABLE_HUB_V2) fun glanceableHubToDreaming_v2() = testScope.runTest { kosmos.setCommunalV2Enabled(true) // GIVEN a device that is not dreaming or dozing keyguardRepository.setDreamingWithOverlay(false) keyguardRepository.setDozeTransitionModel( DozeTransitionModel(from = DozeStateModel.DOZE, to = DozeStateModel.FINISH) ) advanceTimeBy(600.milliseconds) // GIVEN a prior transition has run to glanceable hub communalSceneInteractor.changeScene(CommunalScenes.Communal, "test") runCurrent() clearInvocations(transitionRepository) keyguardRepository.setDreamingWithOverlay(true) advanceTimeBy(100.milliseconds) assertThat(transitionRepository) .startedTransition( ownerName = CommunalSceneTransitionInteractor::class.simpleName, from = KeyguardState.GLANCEABLE_HUB, to = KeyguardState.DREAMING, animatorAssertion = { it.isNull() }, ) coroutineContext.cancelChildren() } @Test @DisableSceneContainer @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR) Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt +19 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.debounce import com.android.app.tracing.coroutines.launchTraced as launch import kotlinx.coroutines.withContext @OptIn(FlowPreview::class) Loading Loading @@ -92,6 +91,7 @@ constructor( listenForHubToAlternateBouncer() listenForHubToOccluded() listenForHubToGone() listenForHubToDreaming() } override fun getDefaultAnimatorForTransitionsToState(toState: KeyguardState): ValueAnimator { Loading Loading @@ -177,6 +177,24 @@ constructor( } } private fun listenForHubToDreaming() { if (!communalSettingsInteractor.isV2FlagEnabled()) { return } scope.launch { keyguardInteractor.isAbleToDream .filterRelevantKeyguardStateAnd { isAbleToDream -> isAbleToDream } .collect { communalSceneInteractor.changeScene( newScene = CommunalScenes.Blank, loggingReason = "hub to dreaming", keyguardState = KeyguardState.DREAMING, ) } } } private fun listenForHubToOccluded() { if (KeyguardWmStateRefactor.isEnabled) { scope.launch { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +40 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import com.android.keyguard.KeyguardSecurityModel.SecurityMode.PIN import com.android.systemui.Flags import com.android.systemui.Flags.FLAG_COMMUNAL_HUB import com.android.systemui.Flags.FLAG_COMMUNAL_SCENE_KTF_REFACTOR import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2 import com.android.systemui.Flags.glanceableHubV2 import com.android.systemui.SysuiTestCase import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.communal.domain.interactor.CommunalSceneTransitionInteractor Loading @@ -34,6 +36,8 @@ import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.communal.domain.interactor.communalSceneInteractor import com.android.systemui.communal.domain.interactor.communalSceneTransitionInteractor import com.android.systemui.communal.domain.interactor.setCommunalAvailable import com.android.systemui.communal.domain.interactor.setCommunalV2ConfigEnabled import com.android.systemui.communal.domain.interactor.setCommunalV2Enabled import com.android.systemui.communal.shared.model.CommunalScenes import com.android.systemui.flags.BrokenWithSceneContainer import com.android.systemui.flags.DisableSceneContainer Loading Loading @@ -153,6 +157,9 @@ class KeyguardTransitionScenariosTest(flags: FlagsParameterization?) : SysuiTest if (!SceneContainerFlag.isEnabled) { mSetFlagsRule.disableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) } if (glanceableHubV2()) { kosmos.setCommunalV2ConfigEnabled(true) } featureFlags = FakeFeatureFlags() fromLockscreenTransitionInteractor.start() Loading Loading @@ -1946,6 +1953,39 @@ class KeyguardTransitionScenariosTest(flags: FlagsParameterization?) : SysuiTest coroutineContext.cancelChildren() } @Test @DisableSceneContainer @EnableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR, FLAG_GLANCEABLE_HUB_V2) fun glanceableHubToDreaming_v2() = testScope.runTest { kosmos.setCommunalV2Enabled(true) // GIVEN a device that is not dreaming or dozing keyguardRepository.setDreamingWithOverlay(false) keyguardRepository.setDozeTransitionModel( DozeTransitionModel(from = DozeStateModel.DOZE, to = DozeStateModel.FINISH) ) advanceTimeBy(600.milliseconds) // GIVEN a prior transition has run to glanceable hub communalSceneInteractor.changeScene(CommunalScenes.Communal, "test") runCurrent() clearInvocations(transitionRepository) keyguardRepository.setDreamingWithOverlay(true) advanceTimeBy(100.milliseconds) assertThat(transitionRepository) .startedTransition( ownerName = CommunalSceneTransitionInteractor::class.simpleName, from = KeyguardState.GLANCEABLE_HUB, to = KeyguardState.DREAMING, animatorAssertion = { it.isNull() }, ) coroutineContext.cancelChildren() } @Test @DisableSceneContainer @DisableFlags(FLAG_COMMUNAL_SCENE_KTF_REFACTOR) Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGlanceableHubTransitionInteractor.kt +19 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.debounce import com.android.app.tracing.coroutines.launchTraced as launch import kotlinx.coroutines.withContext @OptIn(FlowPreview::class) Loading Loading @@ -92,6 +91,7 @@ constructor( listenForHubToAlternateBouncer() listenForHubToOccluded() listenForHubToGone() listenForHubToDreaming() } override fun getDefaultAnimatorForTransitionsToState(toState: KeyguardState): ValueAnimator { Loading Loading @@ -177,6 +177,24 @@ constructor( } } private fun listenForHubToDreaming() { if (!communalSettingsInteractor.isV2FlagEnabled()) { return } scope.launch { keyguardInteractor.isAbleToDream .filterRelevantKeyguardStateAnd { isAbleToDream -> isAbleToDream } .collect { communalSceneInteractor.changeScene( newScene = CommunalScenes.Blank, loggingReason = "hub to dreaming", keyguardState = KeyguardState.DREAMING, ) } } } private fun listenForHubToOccluded() { if (KeyguardWmStateRefactor.isEnabled) { scope.launch { Loading