diff options
| author | 2024-08-23 15:08:20 +0000 | |
|---|---|---|
| committer | 2024-08-26 15:15:16 +0000 | |
| commit | fd31d994b668d0b4725b9f6b0c7c4bbc9f98bbb6 (patch) | |
| tree | d5320b6dba7a76256a9766d171ecc0715967c4fb | |
| parent | e935760fb1d31433036f074089487447b9edecff (diff) | |
STL: Default overscroll ProgressConverter slowly approaches 0.2f [1/2]
In some previous CL we introduced a new default ProgressConverter for
Flexiglass ag/28922176 and the Demo app ag/28945142.
This CL introduces the default for STL in general as well.
Before and after attached to b/336710600#comment20
Test: No test for the new default behavior
Bug: 336710600
Flag: com.android.systemui.scene_container
Change-Id: I43f014e7d6c659911a864bba861ba8da0d1dfd13
3 files changed, 9 insertions, 3 deletions
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt index 5cc194d32424..2b5953c586db 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt @@ -523,8 +523,8 @@ fun interface ProgressConverter { fun convert(progress: Float): Float companion object { - /** Keeps scrolling linearly */ - val Default = linear() + /** Starts linearly with some resistance and slowly approaches to 0.2f */ + val Default = tanh(maxProgress = 0.2f, tilt = 3f) /** * The scroll stays linear, with [factor] you can control how much resistance there is. diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt index 682fe95c66a5..770c0f8dbb8f 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt @@ -724,6 +724,7 @@ class ElementTest { layoutHeight = layoutHeight, sceneTransitions = { overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() // On overscroll 100% -> Foo should translate by overscrollTranslateY translate(TestElements.Foo, y = overscrollTranslateY) } @@ -780,6 +781,7 @@ class ElementTest { transitions = transitions { overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() translate(TestElements.Foo, y = overscrollTranslateY) } } @@ -921,6 +923,7 @@ class ElementTest { layoutHeight = layoutHeight, sceneTransitions = { overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() // On overscroll 100% -> Foo should translate by layoutHeight translate(TestElements.Foo, y = { absoluteDistance }) } @@ -1015,7 +1018,7 @@ class ElementTest { layoutHeight = layoutHeight, sceneTransitions = { // Overscroll progress will be linear (by default) - defaultOverscrollProgressConverter = ProgressConverter { it } + defaultOverscrollProgressConverter = ProgressConverter.linear() overscroll(SceneB, Orientation.Vertical) { // This override the defaultOverscrollProgressConverter @@ -1125,6 +1128,7 @@ class ElementTest { ) overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() // On overscroll 100% -> Foo should translate by layoutHeight translate(TestElements.Foo, y = { absoluteDistance }) } @@ -1861,6 +1865,7 @@ class ElementTest { SceneA, transitions { overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() translate(TestElements.Foo, y = 15.dp) } } diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt index 06799bcda0ef..e48cd81765cb 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt @@ -614,6 +614,7 @@ class SwipeToSceneTest { from(SceneA, to = SceneB) { distance = FixedDistance(swipeDistance) } overscroll(SceneB, Orientation.Vertical) { + progressConverter = ProgressConverter.linear() translate(TestElements.Foo, x = { 20.dp.toPx() }, y = { 30.dp.toPx() }) } } |