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

Commit d6d44ad5 authored by Mike Schneider's avatar Mike Schneider
Browse files

Adopt floating version of VerticalExpandContainerSpec on split shade

- This is a initial experiment on how to implement the different
  behaviors, I intend to iterate on this more.
- Switches the test runner to ParameterizedAndroidJunit4, and renames
  the existing goldens. Due to b/402331022, the golden names have to be
  specified explicitly now

Bug: 401224916
Test: ContentRevealTest
Flag: com.android.systemui.scene_container
Change-Id: Ia99a01f5a419ee52c4f3646f912e6de0cf61d739
parent 9e3d8610
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ fun SceneContainer(
        rememberActivated(traceName = "sceneJankMonitor") { sceneJankMonitorFactory.create() }

    val hapticFeedback = LocalHapticFeedback.current
    val shadeExpansionMotion = OverlayShade.rememberShadeExpansionMotion()
    val shadeExpansionMotion = OverlayShade.rememberShadeExpansionMotion(isFullWidthShade())
    val sceneTransitions =
        remember(hapticFeedback, shadeExpansionMotion) {
            transitionsBuilder.build(
+2 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import com.android.compose.animation.scene.TransitionKey
import com.android.compose.animation.scene.reveal.ContainerRevealHaptics
import com.android.compose.animation.scene.transitions
import com.android.internal.jank.Cuj
import com.android.mechanics.behavior.EdgeContainerExpansionSpec
import com.android.mechanics.behavior.VerticalExpandContainerSpec
import com.android.systemui.notifications.ui.composable.Notifications
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
@@ -50,7 +50,7 @@ import com.android.systemui.shade.ui.composable.Shade
 */
class SceneContainerTransitions : SceneContainerTransitionsBuilder {
    override fun build(
        shadeExpansionMotion: EdgeContainerExpansionSpec,
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
    ): SceneTransitions {
        return transitions {
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package com.android.systemui.scene.ui.composable
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.EdgeContainerExpansionSpec
import com.android.mechanics.behavior.VerticalExpandContainerSpec

/**
 * Builder of the comprehensive definition of all transitions between scenes and overlays in the
@@ -29,7 +29,7 @@ interface SceneContainerTransitionsBuilder {

    /** Build the [SceneContainer] transitions spec. */
    fun build(
        shadeExpansionMotion: EdgeContainerExpansionSpec,
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
    ): SceneTransitions
}
@@ -42,7 +42,7 @@ class ConstantSceneContainerTransitionsBuilder(
    private val transitions: SceneTransitions = transitions { /* No transitions */ }
) : SceneContainerTransitionsBuilder {
    override fun build(
        shadeExpansionMotion: EdgeContainerExpansionSpec,
        shadeExpansionMotion: VerticalExpandContainerSpec,
        revealHaptics: ContainerRevealHaptics,
    ): SceneTransitions = transitions
}
+2 −2
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ import androidx.compose.animation.core.tween
import com.android.compose.animation.scene.TransitionBuilder
import com.android.compose.animation.scene.reveal.ContainerRevealHaptics
import com.android.compose.animation.scene.reveal.verticalContainerReveal
import com.android.mechanics.behavior.EdgeContainerExpansionSpec
import com.android.mechanics.behavior.VerticalExpandContainerSpec
import com.android.systemui.keyguard.ui.composable.blueprint.ClockElementKeys
import com.android.systemui.notifications.ui.composable.NotificationsShade
import com.android.systemui.scene.shared.model.Overlays
@@ -29,7 +29,7 @@ import kotlin.time.Duration.Companion.milliseconds

fun TransitionBuilder.toNotificationsShadeTransition(
    durationScale: Double = 1.0,
    shadeExpansionMotion: EdgeContainerExpansionSpec,
    shadeExpansionMotion: VerticalExpandContainerSpec,
    revealHaptics: ContainerRevealHaptics,
) {
    spec = tween(durationMillis = (DefaultDuration * durationScale).inWholeMilliseconds.toInt())
+2 −2
Original line number Diff line number Diff line
@@ -20,14 +20,14 @@ import androidx.compose.animation.core.tween
import com.android.compose.animation.scene.TransitionBuilder
import com.android.compose.animation.scene.reveal.ContainerRevealHaptics
import com.android.compose.animation.scene.reveal.verticalContainerReveal
import com.android.mechanics.behavior.EdgeContainerExpansionSpec
import com.android.mechanics.behavior.VerticalExpandContainerSpec
import com.android.systemui.qs.ui.composable.QuickSettingsShade
import com.android.systemui.shade.ui.composable.OverlayShade
import kotlin.time.Duration.Companion.milliseconds

fun TransitionBuilder.toQuickSettingsShadeTransition(
    durationScale: Double = 1.0,
    shadeExpansionMotion: EdgeContainerExpansionSpec,
    shadeExpansionMotion: VerticalExpandContainerSpec,
    revealHaptics: ContainerRevealHaptics,
) {
    spec = tween(durationMillis = (DefaultDuration * durationScale).inWholeMilliseconds.toInt())
Loading