Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39829012 authored by Alejandro Nijamkin's avatar Alejandro Nijamkin
Browse files

[flexiglass] Moves transitions to SceneContainerConfig.

This should make it easier for variant owners and OEMs to provide their
own scene transition definitions, replacing our defaults.

Fix: 380358949
Test: built and ran with Flexiglass on
Flag: com.android.systemui.scene_container
Change-Id: Ieab374eba53c572294dd8bd3387306a6636aff22
parent b5664e8e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.compose.animation.scene.MutableSceneTransitionLayoutState
import com.android.compose.animation.scene.OverlayKey
import com.android.compose.animation.scene.SceneKey
import com.android.compose.animation.scene.SceneTransitionLayout
import com.android.compose.animation.scene.SceneTransitions
import com.android.compose.animation.scene.UserAction
import com.android.compose.animation.scene.UserActionResult
import com.android.compose.animation.scene.observableTransitionState
@@ -78,6 +79,7 @@ fun SceneContainer(
    sceneByKey: Map<SceneKey, Scene>,
    overlayByKey: Map<OverlayKey, Overlay>,
    initialSceneKey: SceneKey,
    sceneTransitions: SceneTransitions,
    dataSourceDelegator: SceneDataSourceDelegator,
    qsSceneAdapter: Provider<QSSceneAdapter>,
    modifier: Modifier = Modifier,
@@ -87,7 +89,7 @@ fun SceneContainer(
        MutableSceneTransitionLayoutState(
            initialScene = initialSceneKey,
            canChangeScene = { toScene -> viewModel.canChangeScene(toScene) },
            transitions = SceneContainerTransitions,
            transitions = sceneTransitions,
        )
    }

+9 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.shared.model.sceneDataSourceDelegator
import com.android.systemui.scene.ui.composable.Scene
import com.android.systemui.scene.ui.composable.SceneContainer
import com.android.systemui.scene.ui.composable.SceneContainerTransitions
import com.android.systemui.testKosmos
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.awaitCancellation
@@ -115,7 +116,13 @@ class BouncerPredictiveBackTest : SysuiTestCase() {
    private val Kosmos.initialSceneKey by Fixture { Scenes.Bouncer }
    private val Kosmos.sceneContainerConfig by Fixture {
        val navigationDistances = mapOf(Scenes.Lockscreen to 1, Scenes.Bouncer to 0)
        SceneContainerConfig(sceneKeys, initialSceneKey, emptyList(), navigationDistances)
        SceneContainerConfig(
            sceneKeys,
            initialSceneKey,
            SceneContainerTransitions,
            emptyList(),
            navigationDistances,
        )
    }
    private val view = mock<View>()

@@ -182,6 +189,7 @@ class BouncerPredictiveBackTest : SysuiTestCase() {
                                        Scenes.Bouncer to bouncerScene,
                                    ),
                                initialSceneKey = Scenes.Bouncer,
                                sceneTransitions = SceneContainerTransitions,
                                overlayByKey = emptyMap(),
                                dataSourceDelegator = kosmos.sceneDataSourceDelegator,
                                qsSceneAdapter = { kosmos.fakeQsSceneAdapter },
+2 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.communal.shared.log.CommunalStatsLogProxyImpl
import com.android.systemui.communal.shared.model.CommunalScenes
import com.android.systemui.communal.shared.model.GlanceableHubMultiUserHelper
import com.android.systemui.communal.shared.model.GlanceableHubMultiUserHelperImpl
import com.android.systemui.communal.ui.compose.sceneTransitions
import com.android.systemui.communal.util.CommunalColors
import com.android.systemui.communal.util.CommunalColorsImpl
import com.android.systemui.communal.widgets.CommunalWidgetModule
@@ -113,6 +114,7 @@ interface CommunalModule {
                SceneContainerConfig(
                    sceneKeys = listOf(CommunalScenes.Blank, CommunalScenes.Communal),
                    initialSceneKey = CommunalScenes.Blank,
                    transitions = sceneTransitions,
                    navigationDistances =
                        mapOf(CommunalScenes.Blank to 0, CommunalScenes.Communal to 1),
                )
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.scene.domain.startable.StatusBarStartable
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.SceneContainerConfig
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.ui.composable.SceneContainerTransitions
import com.android.systemui.scene.ui.viewmodel.SplitEdgeDetector
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.shade.shared.flag.DualShade
@@ -98,6 +99,7 @@ interface KeyguardlessSceneContainerFrameworkModule {
                        Scenes.Shade.takeUnless { DualShade.isEnabled },
                    ),
                initialSceneKey = Scenes.Gone,
                transitions = SceneContainerTransitions,
                overlayKeys =
                    listOfNotNull(
                        Overlays.NotificationsShade.takeIf { DualShade.isEnabled },
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.scene.domain.startable.StatusBarStartable
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.SceneContainerConfig
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.ui.composable.SceneContainerTransitions
import com.android.systemui.scene.ui.viewmodel.SplitEdgeDetector
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.shade.shared.flag.DualShade
@@ -106,6 +107,7 @@ interface SceneContainerFrameworkModule {
                        Scenes.Shade.takeUnless { DualShade.isEnabled },
                    ),
                initialSceneKey = Scenes.Lockscreen,
                transitions = SceneContainerTransitions,
                overlayKeys =
                    listOfNotNull(
                        Overlays.NotificationsShade.takeIf { DualShade.isEnabled },
Loading