Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9705c430 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[MM] MotionSpecBuilder resets maxLimitSemantics during last iteration" into main

parents 67933222 d13e70bd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ internal class MotionSpecBuilderImpl(
            maxLimitKey = key
            maxLimitSpring = spring
            maxLimitGuarantee = guarantee
            maxLimitSemantics = emptyList()
        }

        applyEffect(lastDefinition)
+28 −0
Original line number Diff line number Diff line
@@ -437,4 +437,32 @@ class MotionSpecBuilderTest : MotionBuilderContext by FakeMotionSpecBuilderConte
            .containsExactly("initial", "initial", "second", "second")
            .inOrder()
    }

    @Test
    fun effect_modifyMaxLimitSemantics() {
        val semanticKey = SemanticKey<String>("foo")
        val effect =
            object : Effect {
                override fun EffectApplyScope.createSpec() {
                    unidirectional(
                        Mapping.One,
                        semantics = listOf(SemanticValue(semanticKey, "initial")),
                    )
                    maxLimitSemantics = listOf(SemanticValue(semanticKey, "maxLimit"))
                }
            }

        val result =
            motionSpec(baseMapping = Mapping.Zero, defaultSpring = spatial.default) {
                val effect1 = between(1f, 2f, effect)
                after(effect1, FixedValue(2f))
            }

        assertThat(result)
            .maxDirection()
            .semantics()
            .withKey(semanticKey)
            .containsExactly("initial", "initial", "maxLimit")
            .inOrder()
    }
}