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

Commit cc4ea5aa authored by Michael Mikhail's avatar Michael Mikhail
Browse files

[Flexiglass] media transition from launcher to qqs

transition from gone scene to shade scene.

Flag: com.android.systemui.scene_container
Bug: 345467289
Test: checked ui and compared it to legacy code.
Change-Id: I59a3f36a2928610336d4b38c0973dbad2a74bed8
parent fb8ceebd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.res.R
import com.android.systemui.util.animation.MeasurementInput

private object MediaCarousel {
object MediaCarousel {
    object Elements {
        internal val Content =
            ElementKey(debugName = "MediaCarouselContent", scenePicker = MediaScenePicker)
+3 −3
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import com.android.systemui.scene.shared.model.Scenes
/** [ElementScenePicker] implementation for the media carousel object. */
object MediaScenePicker : ElementScenePicker {

    private val shadeLockscreenFraction = 0.65f
    const val SHADE_FRACTION = 0.66f
    private val scenes =
        setOf(
            Scenes.Lockscreen,
@@ -44,7 +44,7 @@ object MediaScenePicker : ElementScenePicker {
        return when {
            // TODO: 352052894 - update with the actual scene picking
            transition.isTransitioning(from = Scenes.Lockscreen, to = Scenes.Shade) -> {
                if (transition.progress < shadeLockscreenFraction) {
                if (transition.progress < SHADE_FRACTION) {
                    Scenes.Lockscreen
                } else {
                    Scenes.Shade
@@ -53,7 +53,7 @@ object MediaScenePicker : ElementScenePicker {

            // TODO: 345467290 - update with the actual scene picking
            transition.isTransitioning(from = Scenes.Shade, to = Scenes.Lockscreen) -> {
                if (transition.progress < 1f - shadeLockscreenFraction) {
                if (transition.progress < 1f - SHADE_FRACTION) {
                    Scenes.Shade
                } else {
                    Scenes.Lockscreen
+9 −4
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import com.android.compose.animation.scene.Edge
import com.android.compose.animation.scene.TransitionBuilder
import com.android.compose.animation.scene.UserActionDistance
import com.android.compose.animation.scene.UserActionDistanceScope
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.media.controls.ui.composable.MediaScenePicker
import com.android.systemui.notifications.ui.composable.Notifications
import com.android.systemui.qs.ui.composable.QuickSettings
import com.android.systemui.scene.shared.model.Scenes
@@ -59,10 +61,13 @@ fun TransitionBuilder.toShadeTransition(
        fade(QuickSettings.Elements.SplitShadeQuickSettings)
        fade(QuickSettings.Elements.FooterActions)
    }
    translate(
        QuickSettings.Elements.QuickQuickSettings,
        y = -ShadeHeader.Dimensions.CollapsedHeight * .66f
    )

    val qsTranslation = ShadeHeader.Dimensions.CollapsedHeight * MediaScenePicker.SHADE_FRACTION
    val qsExpansionDiff =
        ShadeHeader.Dimensions.ExpandedHeight - ShadeHeader.Dimensions.CollapsedHeight

    translate(QuickSettings.Elements.QuickQuickSettings, y = -qsTranslation)
    translate(MediaCarousel.Elements.Content, y = -(qsExpansionDiff + qsTranslation))
    translate(Notifications.Elements.NotificationScrim, Edge.Top, false)
}