Loading packages/SystemUI/compose/scene/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ android_library { "androidx.compose.material3_material3", "PlatformComposeCore", "mechanics", ], kotlincflags: ["-Xjvm-default=all"], Loading packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/AnimateOverlay.kt +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.compose.animation.scene import com.android.compose.animation.scene.content.state.TransitionState import com.android.mechanics.GestureContext import kotlinx.coroutines.CoroutineScope /** Trigger a one-off transition to show or hide an overlay. */ Loading Loading @@ -118,6 +119,7 @@ private class OneOffShowOrHideOverlayTransition( override val isInitiatedByUserInput: Boolean = false override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading @@ -144,6 +146,7 @@ private class OneOffOverlayReplacingTransition( override val isInitiatedByUserInput: Boolean = false override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/AnimateToScene.kt +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.compose.animation.scene import com.android.compose.animation.scene.content.state.TransitionState import com.android.mechanics.GestureContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job Loading Loading @@ -193,6 +194,7 @@ private class OneOffSceneTransition( get() = oneOffAnimation.progressVelocity override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt +11 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import com.android.compose.animation.scene.content.state.TransitionState.Compani import com.android.compose.animation.scene.effect.GestureEffect import com.android.compose.gesture.NestedDraggable import com.android.compose.ui.util.SpaceVectorConverter import com.android.mechanics.DistanceGestureContext import com.android.mechanics.spec.InputDirection import kotlin.math.absoluteValue import kotlinx.coroutines.launch Loading Loading @@ -114,7 +116,14 @@ internal class DraggableHandler( else -> error("Unknown result $result ($upOrLeftResult $downOrRightResult)") } return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation) val gestureContext = DistanceGestureContext( initialDragOffset = 0f, initialDirection = if (isUpOrLeft) InputDirection.Min else InputDirection.Max, directionChangeSlop = layoutImpl.directionChangeSlop, ) return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation, gestureContext) } private fun resolveSwipeSource(startedPosition: Offset): SwipeSource.Resolved? { Loading Loading @@ -316,6 +325,7 @@ private class DragControllerImpl( // when the distance is defined. delta } distance > 0f -> desiredOffset.fastCoerceIn(0f, distance) else -> desiredOffset.fastCoerceIn(distance, 0f) } Loading packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt +4 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import com.android.compose.animation.scene.UserActionResult.HideOverlay import com.android.compose.animation.scene.UserActionResult.ReplaceByOverlay import com.android.compose.animation.scene.UserActionResult.ShowOverlay import com.android.compose.animation.scene.transition.animateProgress import com.android.mechanics.ProvidedGestureContext import com.android.mechanics.spec.InputDirection import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map Loading Loading @@ -55,6 +57,8 @@ internal fun PredictiveBackHandler( // compute the distance. In our case the distance is always 1f. orientation = Orientation.Horizontal, distance = 1f, gestureContext = ProvidedGestureContext(dragOffset = 0f, direction = InputDirection.Max), ) animateProgress( Loading Loading
packages/SystemUI/compose/scene/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ android_library { "androidx.compose.material3_material3", "PlatformComposeCore", "mechanics", ], kotlincflags: ["-Xjvm-default=all"], Loading
packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/AnimateOverlay.kt +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.compose.animation.scene import com.android.compose.animation.scene.content.state.TransitionState import com.android.mechanics.GestureContext import kotlinx.coroutines.CoroutineScope /** Trigger a one-off transition to show or hide an overlay. */ Loading Loading @@ -118,6 +119,7 @@ private class OneOffShowOrHideOverlayTransition( override val isInitiatedByUserInput: Boolean = false override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading @@ -144,6 +146,7 @@ private class OneOffOverlayReplacingTransition( override val isInitiatedByUserInput: Boolean = false override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading
packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/AnimateToScene.kt +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.compose.animation.scene import com.android.compose.animation.scene.content.state.TransitionState import com.android.mechanics.GestureContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job Loading Loading @@ -193,6 +194,7 @@ private class OneOffSceneTransition( get() = oneOffAnimation.progressVelocity override val isUserInputOngoing: Boolean = false override val gestureContext: GestureContext? = null override suspend fun run() { oneOffAnimation.run() Loading
packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt +11 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import com.android.compose.animation.scene.content.state.TransitionState.Compani import com.android.compose.animation.scene.effect.GestureEffect import com.android.compose.gesture.NestedDraggable import com.android.compose.ui.util.SpaceVectorConverter import com.android.mechanics.DistanceGestureContext import com.android.mechanics.spec.InputDirection import kotlin.math.absoluteValue import kotlinx.coroutines.launch Loading Loading @@ -114,7 +116,14 @@ internal class DraggableHandler( else -> error("Unknown result $result ($upOrLeftResult $downOrRightResult)") } return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation) val gestureContext = DistanceGestureContext( initialDragOffset = 0f, initialDirection = if (isUpOrLeft) InputDirection.Min else InputDirection.Max, directionChangeSlop = layoutImpl.directionChangeSlop, ) return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation, gestureContext) } private fun resolveSwipeSource(startedPosition: Offset): SwipeSource.Resolved? { Loading Loading @@ -316,6 +325,7 @@ private class DragControllerImpl( // when the distance is defined. delta } distance > 0f -> desiredOffset.fastCoerceIn(0f, distance) else -> desiredOffset.fastCoerceIn(distance, 0f) } Loading
packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt +4 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import com.android.compose.animation.scene.UserActionResult.HideOverlay import com.android.compose.animation.scene.UserActionResult.ReplaceByOverlay import com.android.compose.animation.scene.UserActionResult.ShowOverlay import com.android.compose.animation.scene.transition.animateProgress import com.android.mechanics.ProvidedGestureContext import com.android.mechanics.spec.InputDirection import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map Loading Loading @@ -55,6 +57,8 @@ internal fun PredictiveBackHandler( // compute the distance. In our case the distance is always 1f. orientation = Orientation.Horizontal, distance = 1f, gestureContext = ProvidedGestureContext(dragOffset = 0f, direction = InputDirection.Max), ) animateProgress( Loading