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

Commit 8ebb9fb5 authored by burakov's avatar burakov
Browse files

[bc25] Add an overscroll animation for Dual Shade.

Test: Manually tested by opening and closing the notifications shade on
a foldable device both in a folded and unfolded configuration.
Test: Unit tests build and pass.
Bug: 342463447
Bug: 337849926
Flag: com.android.systemui.dual_shade

Change-Id: Ica5412464d3f6976518ddb4e307a5d838326dfd8
parent f532e6e3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.android.systemui.scene.ui.composable.transitions.lockscreenToQuickSet
import com.android.systemui.scene.ui.composable.transitions.lockscreenToShadeTransition
import com.android.systemui.scene.ui.composable.transitions.lockscreenToSplitShadeTransition
import com.android.systemui.scene.ui.composable.transitions.shadeToQuickSettingsTransition
import com.android.systemui.shade.ui.composable.OverlayShade
import com.android.systemui.shade.ui.composable.Shade

/**
@@ -102,4 +103,10 @@ val SceneContainerTransitions = transitions {
            y = { Shade.Dimensions.ScrimOverscrollLimit }
        )
    }
    overscroll(Scenes.NotificationsShade, Orientation.Vertical) {
        translate(OverlayShade.Elements.Panel, y = { OverlayShade.Dimensions.OverscrollLimit })
    }
    overscroll(Scenes.QuickSettingsShade, Orientation.Vertical) {
        translate(OverlayShade.Elements.Panel, y = { OverlayShade.Dimensions.OverscrollLimit })
    }
}
+1 −2
Original line number Diff line number Diff line
@@ -50,8 +50,7 @@ fun TransitionBuilder.toNotificationsShadeTransition(
            }
        }

    translate(OverlayShade.Elements.PanelBackground, Edge.Top)
    translate(Notifications.Elements.NotificationScrim, Edge.Top)
    translate(OverlayShade.Elements.Panel, Edge.Top)

    fractionRange(end = .5f) { fade(OverlayShade.Elements.Scrim) }

+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ fun TransitionBuilder.toQuickSettingsShadeTransition(
            }
        }

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

    fractionRange(end = .5f) { fade(OverlayShade.Elements.Scrim) }
}
+6 −1
Original line number Diff line number Diff line
@@ -79,7 +79,10 @@ fun SceneScope.OverlayShade(
                },
            horizontalArrangement = horizontalArrangement,
        ) {
            Panel(modifier = Modifier.panelSize(), content = content)
            Panel(
                modifier = Modifier.element(OverlayShade.Elements.Panel).panelSize(),
                content = content
            )
        }
    }
}
@@ -138,6 +141,7 @@ private fun Modifier.panelSize(): Modifier {
object OverlayShade {
    object Elements {
        val Scrim = ElementKey("OverlayShadeScrim", scenePicker = LowestZIndexScenePicker)
        val Panel = ElementKey("OverlayShadePanel", scenePicker = LowestZIndexScenePicker)
        val PanelBackground =
            ElementKey("OverlayShadePanelBackground", scenePicker = LowestZIndexScenePicker)
    }
@@ -153,6 +157,7 @@ object OverlayShade {
        val PanelCornerRadius = 46.dp
        val PanelWidthMedium = 390.dp
        val PanelWidthLarge = 474.dp
        val OverscrollLimit = 100f
    }

    object Shapes {