diff options
| author | 2025-01-20 08:12:57 -0800 | |
|---|---|---|
| committer | 2025-01-20 08:12:57 -0800 | |
| commit | e80236e2bb556132b29a09ab7b97bf4c8859e125 (patch) | |
| tree | a4344f0c8c56017e987dc22e3dfda540443320e9 | |
| parent | 5ed3fbe6921ce814ec4852278fb36deb2f6d35a4 (diff) | |
| parent | ad1f84389b35282053fff84cbf8695aad91851c1 (diff) | |
Merge "Add test for scene animation when distance is not specified yet" into main
| -rw-r--r-- | packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt index 35ff0044f4d6..059112abb1b1 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt @@ -36,6 +36,7 @@ import com.android.compose.animation.scene.TestScenes.SceneA import com.android.compose.animation.scene.TestScenes.SceneB import com.android.compose.animation.scene.TestScenes.SceneC import com.android.compose.animation.scene.content.state.TransitionState +import com.android.compose.animation.scene.content.state.TransitionState.Companion.DistanceUnspecified import com.android.compose.animation.scene.content.state.TransitionState.Transition import com.android.compose.animation.scene.subjects.assertThat import com.android.compose.gesture.NestedDraggable @@ -785,6 +786,29 @@ class DraggableHandlerTest { } @Test + fun animateWhenDistanceUnspecified() = runGestureTest { + layoutState.transitions = transitions { + from(SceneA, to = SceneB) { + distance = UserActionDistance { _, _, _ -> DistanceUnspecified } + } + } + + val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.9f)) + + // The distance is not computed yet, so we don't know the "progress" value yet. + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.0f) + + controller.onDragStoppedAnimateNow( + // We are animating from SceneA to SceneA, when the distance is still unspecified. + velocity = velocityThreshold, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.0f) + }, + ) + assertIdle(SceneA) + } + + @Test fun showOverlay() = runGestureTest { mutableUserActionsA = mapOf(Swipe.Down to UserActionResult.ShowOverlay(OverlayA)) |