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

Commit 95bf2524 authored by Danny Burakov's avatar Danny Burakov Committed by Android (Google) Code Review
Browse files

Merge "[bc25] Allow dual quick settings shade to align to the bottom." into main

parents 2eff8249 24d2b4c1
Loading
Loading
Loading
Loading
+12 −28
Original line number Diff line number Diff line
@@ -50,30 +50,22 @@ val SceneContainerTransitions = transitions {
    from(Scenes.Gone, to = Scenes.NotificationsShade, key = OpenBottomShade) {
        goneToNotificationsShadeTransition(Edge.Bottom)
    }
    from(Scenes.Gone, to = Scenes.Shade) { goneToShadeTransition() }
    from(
        Scenes.Gone,
        to = Scenes.Shade,
        key = ToSplitShade,
    ) {
        goneToSplitShadeTransition()
    from(Scenes.Gone, to = Scenes.QuickSettingsShade) {
        goneToQuickSettingsShadeTransition(Edge.Top)
    }
    from(Scenes.Gone, to = Scenes.QuickSettingsShade, key = OpenBottomShade) {
        goneToQuickSettingsShadeTransition(Edge.Bottom)
    }
    from(
        Scenes.Gone,
        to = Scenes.Shade,
        key = SlightlyFasterShadeCollapse,
    ) {
    from(Scenes.Gone, to = Scenes.Shade) { goneToShadeTransition() }
    from(Scenes.Gone, to = Scenes.Shade, key = ToSplitShade) { goneToSplitShadeTransition() }
    from(Scenes.Gone, to = Scenes.Shade, key = SlightlyFasterShadeCollapse) {
        goneToShadeTransition(durationScale = 0.9)
    }
    from(Scenes.Gone, to = Scenes.QuickSettings) { goneToQuickSettingsTransition() }
    from(
        Scenes.Gone,
        to = Scenes.QuickSettings,
        key = SlightlyFasterShadeCollapse,
    ) {
    from(Scenes.Gone, to = Scenes.QuickSettings, key = SlightlyFasterShadeCollapse) {
        goneToQuickSettingsTransition(durationScale = 0.9)
    }
    from(Scenes.Gone, to = Scenes.QuickSettingsShade) { goneToQuickSettingsShadeTransition() }

    from(Scenes.Lockscreen, to = Scenes.Bouncer) { lockscreenToBouncerTransition() }
    from(Scenes.Lockscreen, to = Scenes.Communal) { lockscreenToCommunalTransition() }
    from(Scenes.Lockscreen, to = Scenes.NotificationsShade) {
@@ -83,18 +75,10 @@ val SceneContainerTransitions = transitions {
        lockscreenToQuickSettingsShadeTransition()
    }
    from(Scenes.Lockscreen, to = Scenes.Shade) { lockscreenToShadeTransition() }
    from(
        Scenes.Lockscreen,
        to = Scenes.Shade,
        key = ToSplitShade,
    ) {
    from(Scenes.Lockscreen, to = Scenes.Shade, key = ToSplitShade) {
        lockscreenToSplitShadeTransition()
    }
    from(
        Scenes.Lockscreen,
        to = Scenes.Shade,
        key = SlightlyFasterShadeCollapse,
    ) {
    from(Scenes.Lockscreen, to = Scenes.Shade, key = SlightlyFasterShadeCollapse) {
        lockscreenToShadeTransition(durationScale = 0.9)
    }
    from(Scenes.Lockscreen, to = Scenes.QuickSettings) { lockscreenToQuickSettingsTransition() }
+3 −1
Original line number Diff line number Diff line
@@ -16,10 +16,12 @@

package com.android.systemui.scene.ui.composable.transitions

import com.android.compose.animation.scene.Edge
import com.android.compose.animation.scene.TransitionBuilder

fun TransitionBuilder.goneToQuickSettingsShadeTransition(
    edge: Edge = Edge.Top,
    durationScale: Double = 1.0,
) {
    toQuickSettingsShadeTransition(durationScale)
    toQuickSettingsShadeTransition(edge, durationScale)
}
+2 −1
Original line number Diff line number Diff line
@@ -16,10 +16,11 @@

package com.android.systemui.scene.ui.composable.transitions

import com.android.compose.animation.scene.Edge
import com.android.compose.animation.scene.TransitionBuilder

fun TransitionBuilder.lockscreenToQuickSettingsShadeTransition(
    durationScale: Double = 1.0,
) {
    toQuickSettingsShadeTransition(durationScale)
    toQuickSettingsShadeTransition(Edge.Top, durationScale)
}
+3 −13
Original line number Diff line number Diff line
@@ -19,17 +19,15 @@ package com.android.systemui.scene.ui.composable.transitions
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.ui.unit.IntSize
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.shade.ui.composable.OverlayShade
import com.android.systemui.shade.ui.composable.Shade
import kotlin.time.Duration.Companion.milliseconds

fun TransitionBuilder.toQuickSettingsShadeTransition(
    edge: Edge = Edge.Top,
    durationScale: Double = 1.0,
) {
    spec = tween(durationMillis = (DefaultDuration * durationScale).inWholeMilliseconds.toInt())
@@ -38,17 +36,9 @@ fun TransitionBuilder.toQuickSettingsShadeTransition(
            stiffness = Spring.StiffnessMediumLow,
            visibilityThreshold = Shade.Dimensions.ScrimVisibilityThreshold,
        )
    distance =
        object : UserActionDistance {
            override fun UserActionDistanceScope.absoluteDistance(
                fromSceneSize: IntSize,
                orientation: Orientation,
            ): Float {
                return fromSceneSize.height.toFloat() * 2 / 3f
            }
        }
    distance = UserActionDistance { fromSceneSize, _ -> fromSceneSize.height.toFloat() * 2 / 3f }

    translate(OverlayShade.Elements.Panel, Edge.Top)
    translate(OverlayShade.Elements.Panel, edge)

    fractionRange(end = .5f) { fade(OverlayShade.Elements.Scrim) }
}
+19 −8
Original line number Diff line number Diff line
@@ -64,6 +64,16 @@ constructor(
                    // TODO(b/338577208): Remove this once we add Dual Shade invocation zones.
                    shadeMode is ShadeMode.Dual
            ) {
                if (shadeInteractor.shadeAlignment == Alignment.BottomEnd) {
                    put(
                        Swipe(
                            pointerCount = 2,
                            fromSource = Edge.Bottom,
                            direction = SwipeDirection.Up,
                        ),
                        UserActionResult(SceneFamilies.QuickSettings, OpenBottomShade)
                    )
                } else {
                    put(
                        Swipe(
                            pointerCount = 2,
@@ -73,6 +83,7 @@ constructor(
                        UserActionResult(SceneFamilies.QuickSettings)
                    )
                }
            }

            if (shadeInteractor.shadeAlignment == Alignment.BottomEnd) {
                put(Swipe.Up, UserActionResult(SceneFamilies.NotifShade, OpenBottomShade))
Loading