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

Commit 110501cc authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Fix media in landscape in ShadeScene" into main

parents 27b310ce 68d94e66
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.controls.ui.composable.isLandscape
import com.android.systemui.media.remedia.ui.compose.Media
import com.android.systemui.media.remedia.ui.compose.MediaPresentationStyle
import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace
@@ -222,8 +221,7 @@ private fun ContentScope.QuickSettingsScene(
            WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding()

        // ############# Media ###############
        val isMediaVisible = viewModel.qsContainerViewModel.showMedia
        val mediaInRow = isMediaVisible && isLandscape()
        val mediaInRow = viewModel.qsContainerViewModel.showMediaInRow

        ShadePanelScrim(viewModel.isTransparencyEnabled)
        Column(
+6 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.compose.gesture.effect.rememberOffsetOverscrollEffectFactory
import com.android.systemui.keyguard.ui.composable.blueprint.rememberBurnIn
import com.android.systemui.keyguard.ui.composable.modifier.burnInAware
import com.android.systemui.lifecycle.rememberActivated
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.qs.ui.adapter.QSSceneAdapter
import com.android.systemui.qs.ui.composable.QuickSettingsTheme
import com.android.systemui.ribbon.ui.composable.BottomRightCornerRibbon
@@ -106,11 +107,16 @@ fun SceneContainer(

    val hapticFeedback = LocalHapticFeedback.current
    val shadeExpansionMotion = OverlayShade.rememberShadeExpansionMotion(isFullWidthShade())
    val animateQsTilesViewModel =
        rememberViewModel(traceName = "SceneContainer.animateQsTilesViewModel") {
            viewModel.animateQsTilesViewModelFactory.create()
        }
    val sceneTransitions =
        remember(hapticFeedback, shadeExpansionMotion) {
            transitionsBuilder.build(
                shadeExpansionMotion,
                viewModel.hapticsViewModel.getRevealHaptics(hapticFeedback),
                animateQsTilesViewModel,
            )
        }

+9 −9
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import com.android.compose.animation.scene.transitions
import com.android.internal.jank.Cuj
import com.android.mechanics.behavior.VerticalExpandContainerSpec
import com.android.systemui.notifications.ui.composable.Notifications
import com.android.systemui.qs.panels.ui.viewmodel.AnimateQsTilesViewModel
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.shared.model.TransitionKeys.SlightlyFasterShadeCollapse
@@ -49,16 +50,11 @@ import com.android.systemui.shade.ui.composable.Shade
 *
 * Please keep the list sorted alphabetically.
 */
class SceneContainerTransitions(
    /**
     * Pass to transitions that animate QS tiles to disable the shared element animation (e.g.
     * QuickSettings to Shade when QuickSettings is on the second page).
     */
    private val animateQsTilesAsShared: () -> Boolean = { true }
) : SceneContainerTransitionsBuilder {
class SceneContainerTransitions : SceneContainerTransitionsBuilder {
    override fun build(
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
        animateQsTilesViewModel: AnimateQsTilesViewModel,
    ): SceneTransitions {
        return transitions {
            interruptionHandler = DefaultInterruptionHandler
@@ -153,7 +149,9 @@ class SceneContainerTransitions(
                cuj = Cuj.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE, // NOTYPO
            ) {
                reversed {
                    shadeToQuickSettingsTransition(animateQsTilesAsShared = animateQsTilesAsShared)
                    shadeToQuickSettingsTransition(
                        animateQsTilesAsShared = { animateQsTilesViewModel.animateQsTiles }
                    )
                }
                sharedElement(
                    Notifications.Elements.HeadsUpNotificationPlaceholder,
@@ -165,7 +163,9 @@ class SceneContainerTransitions(
                to = Scenes.QuickSettings,
                cuj = Cuj.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE, // NOTYPO
            ) {
                shadeToQuickSettingsTransition(animateQsTilesAsShared = animateQsTilesAsShared)
                shadeToQuickSettingsTransition(
                    animateQsTilesAsShared = { animateQsTilesViewModel.animateQsTiles }
                )
            }
            from(
                Scenes.Shade,
+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import com.android.compose.animation.scene.SceneTransitions
import com.android.compose.animation.scene.reveal.ContainerRevealHaptics
import com.android.compose.animation.scene.transitions
import com.android.mechanics.behavior.VerticalExpandContainerSpec
import com.android.systemui.qs.panels.ui.viewmodel.AnimateQsTilesViewModel

/**
 * Builder of the comprehensive definition of all transitions between scenes and overlays in the
@@ -31,6 +32,7 @@ interface SceneContainerTransitionsBuilder {
    fun build(
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
        animateQsTilesViewModel: AnimateQsTilesViewModel,
    ): SceneTransitions
}

@@ -44,5 +46,6 @@ class ConstantSceneContainerTransitionsBuilder(
    override fun build(
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
        animateQsTilesViewModel: AnimateQsTilesViewModel,
    ): SceneTransitions = transitions
}
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ import com.android.compose.animation.scene.ElementKey
import com.android.compose.animation.scene.ElementMatcher
import com.android.compose.animation.scene.TransitionBuilder
import com.android.compose.animation.scene.UserActionDistance
import com.android.systemui.media.remedia.ui.compose.Media.Elements.mediaCarousel
import com.android.systemui.notifications.ui.composable.Notifications
import com.android.systemui.qs.shared.ui.ElementKeys
import com.android.systemui.qs.ui.composable.QuickSettings
@@ -42,6 +43,7 @@ fun TransitionBuilder.shadeToQuickSettingsTransition(
    // overlap.
    fractionRange(end = 0.5f) { fade(QqsTileElementMatcher) }
    anchoredTranslate(QqsTileElementMatcher, ElementKeys.GridAnchor)
    fade(mediaCarousel)

    val translationY = ShadeHeader.Dimensions.CollapsedHeightForTransitions
    translate(ShadeHeader.Elements.CollapsedContentStart, y = translationY)
Loading