Loading packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt +9 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.media.controls.ui.composable import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.ElementScenePicker import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.SceneTransitionLayoutState import com.android.compose.animation.scene.TransitionState import com.android.systemui.scene.shared.model.Scenes Loading @@ -45,6 +46,9 @@ object MediaScenePicker : ElementScenePicker { shouldElevateMedia(transition) -> { Scenes.Shade } transition.isTransitioningBetween(Scenes.Lockscreen, Scenes.Communal) -> { Scenes.Lockscreen } // TODO: 345467290 - update with the actual scene picking transition.isTransitioningBetween(Scenes.QuickSettings, Scenes.Shade) -> { Loading @@ -57,10 +61,11 @@ object MediaScenePicker : ElementScenePicker { } /** Returns true when the media should be laid on top of the rest for the given [transition]. */ fun shouldElevateMedia(transition: TransitionState.Transition?): Boolean { if (transition == null) { return false } fun shouldElevateMedia(transition: TransitionState.Transition): Boolean { return transition.isTransitioningBetween(Scenes.Lockscreen, Scenes.Shade) } } fun MediaScenePicker.shouldElevateMedia(layoutState: SceneTransitionLayoutState): Boolean { return layoutState.currentTransition?.let { shouldElevateMedia(it) } ?: false } packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +23 −14 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.colorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.LowestZIndexScenePicker Loading @@ -81,6 +82,7 @@ import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.dagger.SysUISingleton import com.android.systemui.media.controls.ui.composable.MediaCarousel import com.android.systemui.media.controls.ui.composable.MediaScenePicker import com.android.systemui.media.controls.ui.composable.shouldElevateMedia import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager import com.android.systemui.media.controls.ui.view.MediaHost Loading Loading @@ -366,7 +368,7 @@ private fun SceneScope.SingleShade( layout(constraints.maxWidth, constraints.maxHeight) { val qsZIndex = if (MediaScenePicker.shouldElevateMedia(layoutState.currentTransition)) { if (MediaScenePicker.shouldElevateMedia(layoutState)) { 1f } else { 0f Loading Loading @@ -475,6 +477,7 @@ private fun SceneScope.SplitShade( val brightnessMirrorShowingModifier = Modifier.graphicsLayer { alpha = contentAlpha } Box { Box( modifier = modifier Loading @@ -483,9 +486,11 @@ private fun SceneScope.SplitShade( // Cannot set the alpha of the whole element to 0, because the mirror should be // in the QS column. .background( colorResource(R.color.shade_scrim_background_dark).copy(alpha = contentAlpha) colorResource(R.color.shade_scrim_background_dark) .copy(alpha = contentAlpha) ) ) { ) Column( modifier = Modifier.fillMaxSize(), ) { Loading Loading @@ -545,11 +550,15 @@ private fun SceneScope.SplitShade( squishiness = { tileSquishiness }, ) } MediaCarousel( isVisible = isMediaVisible, mediaHost = mediaHost, modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth().thenIf( MediaScenePicker.shouldElevateMedia(layoutState) ) { Modifier.zIndex(1f) }, carouselController = mediaCarouselController, ) } Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt +9 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.media.controls.ui.composable import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.ElementScenePicker import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.SceneTransitionLayoutState import com.android.compose.animation.scene.TransitionState import com.android.systemui.scene.shared.model.Scenes Loading @@ -45,6 +46,9 @@ object MediaScenePicker : ElementScenePicker { shouldElevateMedia(transition) -> { Scenes.Shade } transition.isTransitioningBetween(Scenes.Lockscreen, Scenes.Communal) -> { Scenes.Lockscreen } // TODO: 345467290 - update with the actual scene picking transition.isTransitioningBetween(Scenes.QuickSettings, Scenes.Shade) -> { Loading @@ -57,10 +61,11 @@ object MediaScenePicker : ElementScenePicker { } /** Returns true when the media should be laid on top of the rest for the given [transition]. */ fun shouldElevateMedia(transition: TransitionState.Transition?): Boolean { if (transition == null) { return false } fun shouldElevateMedia(transition: TransitionState.Transition): Boolean { return transition.isTransitioningBetween(Scenes.Lockscreen, Scenes.Shade) } } fun MediaScenePicker.shouldElevateMedia(layoutState: SceneTransitionLayoutState): Boolean { return layoutState.currentTransition?.let { shouldElevateMedia(it) } ?: false }
packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +23 −14 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.colorResource import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.LowestZIndexScenePicker Loading @@ -81,6 +82,7 @@ import com.android.systemui.compose.modifiers.sysuiResTag import com.android.systemui.dagger.SysUISingleton import com.android.systemui.media.controls.ui.composable.MediaCarousel import com.android.systemui.media.controls.ui.composable.MediaScenePicker import com.android.systemui.media.controls.ui.composable.shouldElevateMedia import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager import com.android.systemui.media.controls.ui.view.MediaHost Loading Loading @@ -366,7 +368,7 @@ private fun SceneScope.SingleShade( layout(constraints.maxWidth, constraints.maxHeight) { val qsZIndex = if (MediaScenePicker.shouldElevateMedia(layoutState.currentTransition)) { if (MediaScenePicker.shouldElevateMedia(layoutState)) { 1f } else { 0f Loading Loading @@ -475,6 +477,7 @@ private fun SceneScope.SplitShade( val brightnessMirrorShowingModifier = Modifier.graphicsLayer { alpha = contentAlpha } Box { Box( modifier = modifier Loading @@ -483,9 +486,11 @@ private fun SceneScope.SplitShade( // Cannot set the alpha of the whole element to 0, because the mirror should be // in the QS column. .background( colorResource(R.color.shade_scrim_background_dark).copy(alpha = contentAlpha) colorResource(R.color.shade_scrim_background_dark) .copy(alpha = contentAlpha) ) ) { ) Column( modifier = Modifier.fillMaxSize(), ) { Loading Loading @@ -545,11 +550,15 @@ private fun SceneScope.SplitShade( squishiness = { tileSquishiness }, ) } MediaCarousel( isVisible = isMediaVisible, mediaHost = mediaHost, modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth().thenIf( MediaScenePicker.shouldElevateMedia(layoutState) ) { Modifier.zIndex(1f) }, carouselController = mediaCarouselController, ) } Loading