From 01a26c306aeab244ee8a0253e41ae250a101bdf5 Mon Sep 17 00:00:00 2001 From: Arkadii Ivanov Date: Mon, 9 Dec 2024 20:50:47 +0000 Subject: [PATCH] Added isPredictiveBack flag to stackAnimation function with selector --- .../extensions-compose-experimental.api | 4 +-- .../extensions-compose-experimental.klib.api | 2 +- .../jvm/extensions-compose-experimental.api | 4 +-- .../stack/animation/DefaultStackAnimation.kt | 12 ++++++-- .../stack/animation/StackAnimation.kt | 12 ++++++-- .../experimental/stack/ChildStackTest.kt | 30 +++++++++---------- .../animation/DefaultStackAnimationTest.kt | 4 +-- .../animation/PredictiveBackGestureTest.kt | 2 +- .../animation/StackAnimationDirectionsTest.kt | 2 +- 9 files changed, 43 insertions(+), 29 deletions(-) diff --git a/extensions-compose-experimental/api/android/extensions-compose-experimental.api b/extensions-compose-experimental/api/android/extensions-compose-experimental.api index 7cb9ebf5d..1ff32db86 100644 --- a/extensions-compose-experimental/api/android/extensions-compose-experimental.api +++ b/extensions-compose-experimental/api/android/extensions-compose-experimental.api @@ -83,9 +83,9 @@ public abstract interface class com/arkivanov/decompose/extensions/compose/exper public final class com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationKt { public static final fun stackAnimation (Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimator;ZLkotlin/jvm/functions/Function1;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; - public static final fun stackAnimation (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; + public static final fun stackAnimation (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; public static synthetic fun stackAnimation$default (Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimator;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; - public static synthetic fun stackAnimation$default (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; + public static synthetic fun stackAnimation$default (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; } public abstract interface class com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationProvider { diff --git a/extensions-compose-experimental/api/extensions-compose-experimental.klib.api b/extensions-compose-experimental/api/extensions-compose-experimental.klib.api index a3f7ac054..d7b67c26c 100644 --- a/extensions-compose-experimental/api/extensions-compose-experimental.klib.api +++ b/extensions-compose-experimental/api/extensions-compose-experimental.klib.api @@ -67,7 +67,7 @@ final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any, #E: k final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.router.panels/ChildPanels<#A, #B, #C, #D, kotlin/Nothing, kotlin/Nothing>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.router.panels.ChildPanels<0:0,0:1,0:2,0:3,kotlin.Nothing,kotlin.Nothing>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.value/Value>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.value.Value>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation(com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator? = ..., kotlin/Boolean = ..., kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?> = ...): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B> // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation|stackAnimation(com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator?;kotlin.Boolean;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>){0§;1§}[0] -final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation(kotlin/Boolean = ..., kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?> = ..., kotlin/Function3, com.arkivanov.decompose/Child.Created<#A, #B>, com.arkivanov.decompose.extensions.compose.stack.animation/Direction, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator?>): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B> // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation|stackAnimation(kotlin.Boolean;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>;kotlin.Function3,com.arkivanov.decompose.Child.Created<0:0,0:1>,com.arkivanov.decompose.extensions.compose.stack.animation.Direction,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator?>){0§;1§}[0] +final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation(kotlin/Boolean = ..., kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?> = ..., kotlin/Function4, com.arkivanov.decompose/Child.Created<#A, #B>, com.arkivanov.decompose.extensions.compose.stack.animation/Direction, kotlin/Boolean, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator?>): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B> // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation|stackAnimation(kotlin.Boolean;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>;kotlin.Function4,com.arkivanov.decompose.Child.Created<0:0,0:1>,com.arkivanov.decompose.extensions.compose.stack.animation.Direction,kotlin.Boolean,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator?>){0§;1§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack(com.arkivanov.decompose.router.stack/ChildStack<#A, #B>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B>?, kotlin/Function4, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack|ChildStack(com.arkivanov.decompose.router.stack.ChildStack<0:0,0:1>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimation<0:0,0:1>?;kotlin.Function4,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack(com.arkivanov.decompose.value/Value>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B>?, kotlin/Function4, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack|ChildStack(com.arkivanov.decompose.value.Value>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimation<0:0,0:1>?;kotlin.Function4,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§}[0] final fun com.arkivanov.decompose.extensions.compose.experimental.panels/com_arkivanov_decompose_extensions_compose_experimental_panels_ChildPanelsAnimators$stableprop_getter(): kotlin/Int // com.arkivanov.decompose.extensions.compose.experimental.panels/com_arkivanov_decompose_extensions_compose_experimental_panels_ChildPanelsAnimators$stableprop_getter|com_arkivanov_decompose_extensions_compose_experimental_panels_ChildPanelsAnimators$stableprop_getter(){}[0] diff --git a/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api b/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api index a49ea182c..28a295ccb 100644 --- a/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api +++ b/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api @@ -83,9 +83,9 @@ public abstract interface class com/arkivanov/decompose/extensions/compose/exper public final class com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationKt { public static final fun stackAnimation (Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimator;ZLkotlin/jvm/functions/Function1;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; - public static final fun stackAnimation (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; + public static final fun stackAnimation (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; public static synthetic fun stackAnimation$default (Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimator;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; - public static synthetic fun stackAnimation$default (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; + public static synthetic fun stackAnimation$default (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;ILjava/lang/Object;)Lcom/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation; } public abstract interface class com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationProvider { diff --git a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimation.kt b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimation.kt index 8e3ba3359..1229f87be 100644 --- a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimation.kt +++ b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimation.kt @@ -38,7 +38,12 @@ import kotlinx.coroutines.launch internal class DefaultStackAnimation( private val disableInputDuringAnimation: Boolean, private val predictiveBackParams: (ChildStack) -> PredictiveBackParams?, - private val selector: (child: Child.Created, otherChild: Child.Created, direction: Direction) -> StackAnimator?, + private val selector: ( + child: Child.Created, + otherChild: Child.Created, + direction: Direction, + isPredictiveBack: Boolean, + ) -> StackAnimator?, ) : StackAnimation { @Composable @@ -223,13 +228,14 @@ internal class DefaultStackAnimation( direction: Direction, transitionState: TransitionState, otherChild: Child.Created, + isPredictiveBack: Boolean = false, predictiveBackAnimator: StackAnimator? = null, ): AnimationItem = AnimationItem( child = child, direction = direction, transitionState = transitionState, - animator = predictiveBackAnimator ?: selector(child, otherChild, direction), + animator = predictiveBackAnimator ?: selector(child, otherChild, direction, isPredictiveBack), ) private inner class PredictiveBackCallback( @@ -269,6 +275,7 @@ internal class DefaultStackAnimation( direction = Direction.ENTER_BACK, transitionState = animationHandler.enterTransitionState, otherChild = exitChild, + isPredictiveBack = true, predictiveBackAnimator = animationHandler.animatable?.let { anim -> SimpleStackAnimator { anim.enterModifier } }, ), AnimationItem( @@ -276,6 +283,7 @@ internal class DefaultStackAnimation( direction = Direction.EXIT_FRONT, transitionState = animationHandler.exitTransitionState, otherChild = enterChild, + isPredictiveBack = true, predictiveBackAnimator = animationHandler.animatable?.let { anim -> SimpleStackAnimator { anim.exitModifier } }, ), ) diff --git a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation.kt b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation.kt index 039c520f3..70d8bcb09 100644 --- a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation.kt +++ b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimation.kt @@ -29,13 +29,19 @@ fun interface StackAnimation { * @param predictiveBackParams a function that returns [PredictiveBackParams] for the specified [ChildStack], * or `null`. The predictive back gesture is enabled if the value returned for the specified [ChildStack] * is *not* `null`, and disabled if the returned value is `null`. - * @param selector provides an optional [StackAnimator] for the current [Child], other [Child] and [Direction]. + * @param selector provides an optional [StackAnimator] for the current [Child], other [Child], [Direction] and + * `isPredictiveBack` flag. */ @ExperimentalDecomposeApi fun stackAnimation( disableInputDuringAnimation: Boolean = true, predictiveBackParams: (ChildStack) -> PredictiveBackParams? = { null }, - selector: (child: Child.Created, otherChild: Child.Created, direction: Direction) -> StackAnimator?, + selector: ( + child: Child.Created, + otherChild: Child.Created, + direction: Direction, + isPredictiveBack: Boolean, + ) -> StackAnimator?, ): StackAnimation = DefaultStackAnimation( disableInputDuringAnimation = disableInputDuringAnimation, @@ -61,5 +67,5 @@ fun stackAnimation( DefaultStackAnimation( disableInputDuringAnimation = disableInputDuringAnimation, predictiveBackParams = predictiveBackParams, - selector = { _, _, _ -> animator }, + selector = { _, _, _, _ -> animator }, ) diff --git a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt index ef3a35899..d0b823c46 100644 --- a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt +++ b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt @@ -274,21 +274,21 @@ class ChildStackTest( return listOf( null, - stackAnimation { _, _, _ -> null }, - stackAnimation { _, _, _ -> scale() }, - stackAnimation { _, _, _ -> fade() }, - stackAnimation { _, _, _ -> slide() }, - stackAnimation { _, _, _ -> scale() + fade() + slide() }, - stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _ -> null }, - stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _ -> scale() }, - stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _ -> fade() }, - stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _ -> slide() }, - stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _ -> scale() + fade() + slide() }, - stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _ -> null }, - stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _ -> scale() }, - stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _ -> fade() }, - stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _ -> slide() }, - stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _ -> scale() + fade() + slide() }, + stackAnimation { _, _, _, _ -> null }, + stackAnimation { _, _, _, _ -> scale() }, + stackAnimation { _, _, _, _ -> fade() }, + stackAnimation { _, _, _, _ -> slide() }, + stackAnimation { _, _, _, _ -> scale() + fade() + slide() }, + stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _, _ -> null }, + stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _, _ -> scale() }, + stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _, _ -> fade() }, + stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _, _ -> slide() }, + stackAnimation(predictiveBackParams = { predictiveBackParams1 }) { _, _, _, _ -> scale() + fade() + slide() }, + stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _, _ -> null }, + stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _, _ -> scale() }, + stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _, _ -> fade() }, + stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _, _ -> slide() }, + stackAnimation(predictiveBackParams = { predictiveBackParams2 }) { _, _, _, _ -> scale() + fade() + slide() }, ) } } diff --git a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimationTest.kt b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimationTest.kt index f5daa08e9..b56cdf350 100644 --- a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimationTest.kt +++ b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimationTest.kt @@ -28,7 +28,7 @@ class DefaultStackAnimationTest { DefaultStackAnimation( disableInputDuringAnimation = true, predictiveBackParams = { null }, - selector = { _, _, _ -> null }, + selector = { _, _, _, _ -> null }, ) var stack by mutableStateOf(stack(1)) @@ -77,7 +77,7 @@ class DefaultStackAnimationTest { DefaultStackAnimation( disableInputDuringAnimation = true, predictiveBackParams = { null }, - selector = { _, _, _ -> null }, + selector = { _, _, _, _ -> null }, ) var stack by mutableStateOf(stack(1)) diff --git a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/PredictiveBackGestureTest.kt b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/PredictiveBackGestureTest.kt index f5a9bd906..5a0fde088 100644 --- a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/PredictiveBackGestureTest.kt +++ b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/PredictiveBackGestureTest.kt @@ -506,7 +506,7 @@ class PredictiveBackGestureTest { animatable = predictiveBackAnimatable, ) }, - selector = { _, _, _ -> animator }, + selector = { _, _, _, _ -> animator }, ) private fun stack(configs: List): ChildStack = diff --git a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationDirectionsTest.kt b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationDirectionsTest.kt index e37978513..7d34e1abc 100644 --- a/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationDirectionsTest.kt +++ b/extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/StackAnimationDirectionsTest.kt @@ -36,7 +36,7 @@ class StackAnimationDirectionsTest( DefaultStackAnimation( disableInputDuringAnimation = false, predictiveBackParams = { null }, - selector = { child, _, _ -> + selector = { child, _, _, _ -> StackAnimator { direction -> results[child.configuration] = direction Modifier