diff options
16 files changed, 71 insertions, 72 deletions
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt index 3a7c2bf5d331..bd21a69e0699 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt @@ -31,9 +31,6 @@ import kotlinx.coroutines.flow.flowOf * layout or Compose drawing phases. * 2. [ObservableTransitionState] values are backed by Kotlin [Flow]s and can be collected by * non-Compose code to observe value changes. - * 3. [ObservableTransitionState.Transition.fromScene] and - * [ObservableTransitionState.Transition.toScene] will never be equal, while - * [TransitionState.Transition.fromScene] and [TransitionState.Transition.toScene] can be equal. */ sealed interface ObservableTransitionState { /** @@ -54,9 +51,8 @@ sealed interface ObservableTransitionState { /** There is a transition animating between two scenes. */ sealed class Transition( - // TODO(b/353679003): Rename these to fromContent and toContent. - open val fromScene: ContentKey, - open val toScene: ContentKey, + val fromContent: ContentKey, + val toContent: ContentKey, val currentOverlays: Flow<Set<OverlayKey>>, val progress: Flow<Float>, @@ -86,8 +82,8 @@ sealed interface ObservableTransitionState { ) : ObservableTransitionState { override fun toString(): String = """Transition - |(from=$fromScene, - | to=$toScene, + |(from=$fromContent, + | to=$toContent, | isInitiatedByUserInput=$isInitiatedByUserInput, | isUserInputOngoing=$isUserInputOngoing |)""" @@ -95,8 +91,8 @@ sealed interface ObservableTransitionState { /** A transition animating between [fromScene] and [toScene]. */ class ChangeScene( - override val fromScene: SceneKey, - override val toScene: SceneKey, + val fromScene: SceneKey, + val toScene: SceneKey, val currentScene: Flow<SceneKey>, currentOverlays: Flow<Set<OverlayKey>>, progress: Flow<Float>, @@ -196,8 +192,8 @@ sealed interface ObservableTransitionState { fun isTransitioning(from: ContentKey? = null, to: ContentKey? = null): Boolean { return this is Transition && - (from == null || this.fromScene == from) && - (to == null || this.toScene == to) + (from == null || this.fromContent == from) && + (to == null || this.toContent == to) } } diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ObservableTransitionStateTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ObservableTransitionStateTest.kt index 2c723eca183d..f3161f36bbf0 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ObservableTransitionStateTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ObservableTransitionStateTest.kt @@ -90,16 +90,16 @@ class ObservableTransitionStateTest { at(0) { val state = observableState() assertThat(state).isInstanceOf(ObservableTransitionState.Transition::class.java) - assertThat((state as ObservableTransitionState.Transition).fromScene) + assertThat((state as ObservableTransitionState.Transition).fromContent) .isEqualTo(SceneA) - assertThat(state.toScene).isEqualTo(SceneB) + assertThat(state.toContent).isEqualTo(SceneB) assertThat(state.progress()).isEqualTo(0f) } at(TestTransitionDuration / 2) { val state = observableState() - assertThat((state as ObservableTransitionState.Transition).fromScene) + assertThat((state as ObservableTransitionState.Transition).fromContent) .isEqualTo(SceneA) - assertThat(state.toScene).isEqualTo(SceneB) + assertThat(state.toContent).isEqualTo(SceneB) assertThat(state.progress()).isEqualTo(0.5f) } after { @@ -200,7 +200,7 @@ class ObservableTransitionStateTest { var state = observableState() assertThat(state).isInstanceOf(ObservableTransitionState.Transition::class.java) - assertThat((state as ObservableTransitionState.Transition).fromScene).isEqualTo(SceneA) + assertThat((state as ObservableTransitionState.Transition).fromContent).isEqualTo(SceneA) assertThat(state.previewProgress()).isEqualTo(0.4f) assertThat(state.isInPreviewStage()).isEqualTo(true) @@ -218,7 +218,7 @@ class ObservableTransitionStateTest { } state = observableState() assertThat(state).isInstanceOf(ObservableTransitionState.Transition::class.java) - assertThat((state as ObservableTransitionState.Transition).fromScene).isEqualTo(SceneA) + assertThat((state as ObservableTransitionState.Transition).fromContent).isEqualTo(SceneA) assertThat(state.previewProgress()).isEqualTo(0.4f) assertThat(state.isInPreviewStage()).isEqualTo(false) diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneInteractor.kt index 8f756a23a9da..ac496f01a39d 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneInteractor.kt @@ -195,7 +195,7 @@ constructor( is ObservableTransitionState.Idle -> flowOf(CommunalTransitionProgressModel.Idle(state.currentScene)) is ObservableTransitionState.Transition -> - if (state.toScene == targetScene) { + if (state.toContent == targetScene) { state.progress.map { CommunalTransitionProgressModel.Transition( // Clamp the progress values between 0 and 1 as actual progress diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt index e04d3095d68d..c7538bb4f696 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalSceneTransitionInteractor.kt @@ -161,7 +161,7 @@ constructor( if ( prevTransition is ObservableTransitionState.Transition && currentTransitionId != null && - idle.currentScene == prevTransition.toScene + idle.currentScene == prevTransition.toContent ) { finishCurrentTransition() } else { @@ -219,17 +219,19 @@ constructor( prevTransition: ObservableTransitionState, transition: ObservableTransitionState.Transition ) { - if (prevTransition.isTransitioning(from = transition.fromScene, to = transition.toScene)) { + if ( + prevTransition.isTransitioning(from = transition.fromContent, to = transition.toContent) + ) { // This is a new transition, but exactly the same as the previous state. Skip resetting // KTF for this case and just collect the new progress instead. collectProgress(transition) - } else if (transition.toScene == CommunalScenes.Communal) { + } else if (transition.toContent == CommunalScenes.Communal) { if (currentToState == KeyguardState.GLANCEABLE_HUB) { transitionKtfTo(transitionInteractor.startedKeyguardTransitionStep.value.from) } startTransitionToGlanceableHub() collectProgress(transition) - } else if (transition.toScene == CommunalScenes.Blank) { + } else if (transition.toContent == CommunalScenes.Blank) { // Another transition started before this one is completed. Transition to the // GLANCEABLE_HUB state so that we can properly transition away from it. transitionKtfTo(KeyguardState.GLANCEABLE_HUB) diff --git a/packages/SystemUI/src/com/android/systemui/communal/log/CommunalLoggerStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/log/CommunalLoggerStartable.kt index 2352841fdde9..1def5a3147bc 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/log/CommunalLoggerStartable.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/log/CommunalLoggerStartable.kt @@ -126,13 +126,13 @@ private fun ObservableTransitionState.isNotOnCommunal(): Boolean { /** Whether currently transitioning from another scene to communal. */ private fun ObservableTransitionState.isSwipingToCommunal(): Boolean { return this is ObservableTransitionState.Transition && - toScene == CommunalScenes.Communal && + toContent == CommunalScenes.Communal && isInitiatedByUserInput } /** Whether currently transitioning from communal to another scene. */ private fun ObservableTransitionState.isSwipingFromCommunal(): Boolean { return this is ObservableTransitionState.Transition && - fromScene == CommunalScenes.Communal && + fromContent == CommunalScenes.Communal && isInitiatedByUserInput } diff --git a/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalSceneLogger.kt b/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalSceneLogger.kt index aed92156cfc3..83f31e54e92e 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalSceneLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalSceneLogger.kt @@ -74,8 +74,8 @@ class CommunalSceneLogger @Inject constructor(@CommunalLog private val logBuffer tag = TAG, level = LogLevel.INFO, messageInitializer = { - str1 = transitionState.fromScene.toString() - str2 = transitionState.toScene.toString() + str1 = transitionState.fromContent.toString() + str2 = transitionState.toContent.toString() }, messagePrinter = { "Scene transition started: $str1 → $str2" }, ) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt index 2af95f20c7d7..2c3b481b9e16 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt @@ -119,7 +119,8 @@ constructor( is ObservableTransitionState.Idle -> it.currentScene == Scenes.Lockscreen is ObservableTransitionState.Transition -> - it.fromScene == Scenes.Lockscreen || it.toScene == Scenes.Lockscreen + it.fromContent == Scenes.Lockscreen || + it.toContent == Scenes.Lockscreen } } .distinctUntilChanged() diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt index ac874005b612..a09cd7c12d42 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt @@ -127,8 +127,8 @@ constructor( when (transitionState) { is ObservableTransitionState.Transition -> when { - transitionState.fromScene == Scenes.Lockscreen && - transitionState.toScene == Scenes.Gone -> + transitionState.fromContent == Scenes.Lockscreen && + transitionState.toContent == Scenes.Gone -> sceneInteractor .get() .isTransitionUserInputOngoing @@ -139,8 +139,8 @@ constructor( flowOf(true) } } - transitionState.fromScene == Scenes.Bouncer && - transitionState.toScene == Scenes.Gone -> + transitionState.fromContent == Scenes.Bouncer && + transitionState.toContent == Scenes.Gone -> transitionState.progress.map { progress -> progress > FromPrimaryBouncerTransitionInteractor diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt index ffd7812166db..f3bb8293851f 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractor.kt @@ -111,7 +111,7 @@ constructor( if (currentTransitionId == null) return if (prevTransition !is ObservableTransitionState.Transition) return - if (idle.currentScene == prevTransition.toScene) { + if (idle.currentScene == prevTransition.toContent) { finishCurrentTransition() } else { val targetState = @@ -150,7 +150,7 @@ constructor( } private suspend fun handleTransition(transition: ObservableTransitionState.Transition) { - if (transition.fromScene == Scenes.Lockscreen) { + if (transition.fromContent == Scenes.Lockscreen) { if (currentTransitionId != null) { val currentToState = internalTransitionInteractor.currentTransitionInfoInternal.value.to @@ -160,7 +160,7 @@ constructor( } startTransitionFromLockscreen() collectProgress(transition) - } else if (transition.toScene == Scenes.Lockscreen) { + } else if (transition.toContent == Scenes.Lockscreen) { if (currentTransitionId != null) { transitionKtfTo(UNDEFINED) } diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt index a2142b6ce30c..0d24adc30799 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt @@ -202,8 +202,8 @@ constructor( } is ObservableTransitionState.Transition -> { when { - transition.toScene == scene -> transition.progress - transition.fromScene == scene -> transition.progress.map { 1f - it } + transition.toContent == scene -> transition.progress + transition.fromContent == scene -> transition.progress.map { 1f - it } else -> flowOf(0f) } } @@ -501,7 +501,7 @@ constructor( } val inMidTransitionFromGone = - (transitionState.value as? ObservableTransitionState.Transition)?.fromScene == + (transitionState.value as? ObservableTransitionState.Transition)?.fromContent == Scenes.Gone val isChangeAllowed = to != Scenes.Gone || diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt index 9c2b992c0de6..e51a8bc65970 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt @@ -81,14 +81,14 @@ constructor( state.currentScene == Scenes.QuickSettingsShade || state.currentScene == Scenes.Lockscreen is ObservableTransitionState.Transition -> - state.toScene == Scenes.Shade || - state.toScene == Scenes.NotificationsShade || - state.toScene == Scenes.QuickSettingsShade || - state.toScene == Scenes.Lockscreen || - state.fromScene == Scenes.Shade || - state.fromScene == Scenes.NotificationsShade || - state.fromScene == Scenes.QuickSettingsShade || - state.fromScene == Scenes.Lockscreen + state.toContent == Scenes.Shade || + state.toContent == Scenes.NotificationsShade || + state.toContent == Scenes.QuickSettingsShade || + state.toContent == Scenes.Lockscreen || + state.fromContent == Scenes.Shade || + state.fromContent == Scenes.NotificationsShade || + state.fromContent == Scenes.QuickSettingsShade || + state.fromContent == Scenes.Lockscreen } } .distinctUntilChanged() diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt index 7eb48d6a06ff..0a7526a41d65 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt @@ -189,7 +189,7 @@ constructor( // current scene when (state) { is ObservableTransitionState.Idle -> state.currentScene - is ObservableTransitionState.Transition -> state.fromScene + is ObservableTransitionState.Transition -> state.fromContent }.let { it == Scenes.Shade || it == Scenes.QuickSettings } } .distinctUntilChanged() @@ -220,7 +220,7 @@ constructor( } } is ObservableTransitionState.Transition -> { - if (state.fromScene == Scenes.Gone) { + if (state.fromContent == Scenes.Gone) { true to "scene transitioning away from Gone" } else { null @@ -351,8 +351,8 @@ constructor( is ObservableTransitionState.Idle -> setOf(transitionState.currentScene) is ObservableTransitionState.Transition -> setOf( - transitionState.fromScene, - transitionState.toScene, + transitionState.fromContent, + transitionState.toContent, ) } val isOnLockscreen = renderedScenes.contains(Scenes.Lockscreen) @@ -461,7 +461,8 @@ constructor( sceneInteractor.transitionState.value as? ObservableTransitionState.Transition ?: return@collect if ( - transition.fromScene == Scenes.Gone && transition.toScene == Scenes.Lockscreen + transition.fromContent == Scenes.Gone && + transition.toContent == Scenes.Lockscreen ) { switchToScene( targetSceneKey = Scenes.Gone, @@ -694,8 +695,8 @@ constructor( .filterIsInstance<ObservableTransitionState.Transition>() // Only consider user-initiated (e.g. drags) that go from bouncer to lockscreen. .filter { transition -> - transition.fromScene == Scenes.Bouncer && - transition.toScene == Scenes.Lockscreen && + transition.fromContent == Scenes.Bouncer && + transition.toContent == Scenes.Lockscreen && transition.isInitiatedByUserInput } .flatMapLatest { it.progress } diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt index aa418e61598c..fb53ddb0ee7a 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/shared/logger/SceneLogger.kt @@ -78,8 +78,8 @@ class SceneLogger @Inject constructor(@SceneFrameworkLog private val logBuffer: tag = TAG, level = LogLevel.INFO, messageInitializer = { - str1 = transitionState.fromScene.toString() - str2 = transitionState.toScene.toString() + str1 = transitionState.fromContent.toString() + str2 = transitionState.toContent.toString() }, messagePrinter = { "Scene transition started: $str1 → $str2" }, ) diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeAnimationInteractorSceneContainerImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeAnimationInteractorSceneContainerImpl.kt index 79a94a51768c..8467185b4239 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeAnimationInteractorSceneContainerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeAnimationInteractorSceneContainerImpl.kt @@ -49,10 +49,10 @@ constructor( is ObservableTransitionState.Idle -> flowOf(false) is ObservableTransitionState.Transition -> if ( - (state.fromScene == Scenes.Shade && - state.toScene != Scenes.QuickSettings) || - (state.fromScene == Scenes.QuickSettings && - state.toScene != Scenes.Shade) + (state.fromContent == Scenes.Shade && + state.toContent != Scenes.QuickSettings) || + (state.fromContent == Scenes.QuickSettings && + state.toContent != Scenes.Shade) ) { state.isUserInputOngoing.map { !it } } else { @@ -71,10 +71,10 @@ constructor( is ObservableTransitionState.Transition -> if ( state.isInitiatedByUserInput && - (state.fromScene == Scenes.Shade || - state.toScene == Scenes.Shade || - state.fromScene == Scenes.QuickSettings || - state.toScene == Scenes.QuickSettings) + (state.fromContent == Scenes.Shade || + state.toContent == Scenes.Shade || + state.fromContent == Scenes.QuickSettings || + state.toContent == Scenes.QuickSettings) ) { state.isUserInputOngoing.map { !it } } else { diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt index 6a21531d9c06..f3a0b59c0698 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt @@ -90,8 +90,8 @@ constructor( when (state) { is ObservableTransitionState.Idle -> false is ObservableTransitionState.Transition -> - state.toScene == quickSettingsScene && - state.fromScene != notificationsScene + state.toContent == quickSettingsScene && + state.fromContent != notificationsScene } } .distinctUntilChanged() @@ -147,9 +147,9 @@ constructor( flowOf(0f) } is ObservableTransitionState.Transition -> - if (state.toScene == resolvedSceneKey) { + if (state.toContent == resolvedSceneKey) { state.progress - } else if (state.fromScene == resolvedSceneKey) { + } else if (state.fromContent == resolvedSceneKey) { state.progress.map { progress -> 1 - progress } } else { flowOf(0f) @@ -172,8 +172,8 @@ constructor( is ObservableTransitionState.Transition -> sceneInteractor.resolveSceneFamily(sceneKey).map { resolvedSceneKey -> state.isInitiatedByUserInput && - (state.toScene == resolvedSceneKey || - state.fromScene == resolvedSceneKey) + (state.toContent == resolvedSceneKey || + state.fromContent == resolvedSceneKey) } } } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt index 59f2b9412413..c95b2dcb08b6 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt @@ -29,7 +29,6 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.runCurrent private val mutableTransitionState = MutableStateFlow<ObservableTransitionState>(ObservableTransitionState.Idle(Scenes.Lockscreen)) @@ -116,13 +115,13 @@ private fun getStateWithUndefined( is ObservableTransitionState.Transition -> { TransitionStep( from = - if (sceneTransition.fromScene != Scenes.Lockscreen) { + if (sceneTransition.fromContent != Scenes.Lockscreen) { KeyguardState.UNDEFINED } else { state.from }, to = - if (sceneTransition.toScene != Scenes.Lockscreen) { + if (sceneTransition.toContent != Scenes.Lockscreen) { KeyguardState.UNDEFINED } else { state.from |