summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mike Schneider <michschn@google.com> 2025-02-14 14:54:05 +0100
committer Mike Schneider <michschn@google.com> 2025-02-14 14:54:05 +0100
commitf97d74b9d89020fde9cfdf8b7ea22d044e474f89 (patch)
tree62e046a6814008723955f6dded4e5e68bab743d4
parente018f198e06d765259c81791fbdb940c32f91ed9 (diff)
Expose [MotionScheme] via [PropertyTransformationScope]
Bug: 392534646 Test: Existing unit tests Flag: com.android.systemui.scene_container Change-Id: I57a59c9faaeb37b4a1e0bdb566f61d79a0d50f09
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/UserActionDistanceScopeImpl.kt6
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/Transformation.kt9
2 files changed, 13 insertions, 2 deletions
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/UserActionDistanceScopeImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/UserActionDistanceScopeImpl.kt
index fffc7f988acf..2d2a81542f84 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/UserActionDistanceScopeImpl.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/UserActionDistanceScopeImpl.kt
@@ -16,6 +16,8 @@
package com.android.compose.animation.scene
+import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
+import androidx.compose.material3.MotionScheme
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.LayoutDirection
@@ -59,4 +61,8 @@ internal class PropertyTransformationScopeImpl(private val layoutImpl: SceneTran
override val layoutDirection: LayoutDirection
get() = layoutImpl.layoutDirection
+
+ @ExperimentalMaterial3ExpressiveApi
+ override val motionScheme: MotionScheme
+ get() = layoutImpl.state.motionScheme
}
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/Transformation.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/Transformation.kt
index e0b42189854a..613afe211d87 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/Transformation.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/Transformation.kt
@@ -18,7 +18,8 @@ package com.android.compose.animation.scene.transformation
import androidx.compose.animation.core.Easing
import androidx.compose.animation.core.LinearEasing
-import androidx.compose.ui.geometry.Offset
+import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
+import androidx.compose.material3.MotionScheme
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.LayoutDirection
@@ -29,8 +30,8 @@ import com.android.compose.animation.scene.ContentKey
import com.android.compose.animation.scene.ElementKey
import com.android.compose.animation.scene.ElementMatcher
import com.android.compose.animation.scene.ElementStateScope
-import com.android.compose.animation.scene.Scale
import com.android.compose.animation.scene.content.state.TransitionState
+import com.android.compose.animation.scene.transformation.PropertyTransformation.Property
import kotlinx.coroutines.CoroutineScope
/** A transformation applied to one or more elements during a transition. */
@@ -126,9 +127,13 @@ interface CustomPropertyTransformation<T> : PropertyTransformation<T> {
): T
}
+@OptIn(ExperimentalMaterial3ExpressiveApi::class)
interface PropertyTransformationScope : Density, ElementStateScope {
/** The current [direction][LayoutDirection] of the layout. */
val layoutDirection: LayoutDirection
+
+ /** The [MotionScheme] in use by the [SceneTransitionLayout]. */
+ val motionScheme: MotionScheme
}
/** Defines the transformation-type to be applied to all elements matching [matcher]. */