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

Commit 73a98226 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Adopt end animation callback adjustment for tests

With Animator.setPostNotifyEndListenerEnabled set to true
(for excluding potential heavy operation from last animating frame),
the end callback will be notified on next frame. So make the test
compatible with the behavior.

Bug: 300035126
Flag: com.android.window.flags.system_ui_post_animation_end
Test: atest SystemUITests:WindowMagnificationAnimationControllerTest
            SystemUITests:FoldLightRevealOverlayAnimationTest
            SystemUITests:LoadingEffectTest
            SystemUITests:GlowBoxEffectTest

Change-Id: Idb7be51f5d01e080f2375dd3d022915d48b5cc53
parent b8debc69
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -140,6 +140,14 @@ public abstract class Animator implements Cloneable {
        sPostNotifyEndListenerEnabled = enable;
    }

    /**
     * @see #sPostNotifyEndListenerEnabled
     * @hide
     */
    public static boolean isPostNotifyEndListenerEnabled() {
        return sPostNotifyEndListenerEnabled;
    }

    /**
     * Starts this animation. If the animation has a nonzero startDelay, the animation will start
     * running after that delay elapses. A non-delayed animation will have its initial
+3 −3
Original line number Diff line number Diff line
@@ -90,15 +90,15 @@ class GlowBoxEffectTest : SysuiTestCase() {

        assertThat(glowBoxEffect.state).isEqualTo(GlowBoxEffect.AnimationState.EASE_IN)

        animatorTestRule.advanceTimeBy(config.easeInDuration + 50L)
        animatorTestRule.advanceAnimationDuration(config.easeInDuration + 50L)

        assertThat(glowBoxEffect.state).isEqualTo(GlowBoxEffect.AnimationState.MAIN)

        animatorTestRule.advanceTimeBy(config.duration + 50L)
        animatorTestRule.advanceAnimationDuration(config.duration + 50L)

        assertThat(glowBoxEffect.state).isEqualTo(GlowBoxEffect.AnimationState.EASE_OUT)

        animatorTestRule.advanceTimeBy(config.easeOutDuration + 50L)
        animatorTestRule.advanceAnimationDuration(config.easeOutDuration + 50L)

        assertThat(glowBoxEffect.state).isEqualTo(GlowBoxEffect.AnimationState.NOT_PLAYING)
    }
+5 −5
Original line number Diff line number Diff line
@@ -117,9 +117,9 @@ class LoadingEffectTest : SysuiTestCase() {
        loadingEffect.play()

        // Execute all the animators by advancing each duration with some buffer.
        animatorTestRule.advanceTimeBy(config.easeInDuration.toLong())
        animatorTestRule.advanceTimeBy(config.maxDuration.toLong())
        animatorTestRule.advanceTimeBy(config.easeOutDuration.toLong())
        animatorTestRule.advanceAnimationDuration(config.easeInDuration.toLong())
        animatorTestRule.advanceAnimationDuration(config.maxDuration.toLong())
        animatorTestRule.advanceAnimationDuration(config.easeOutDuration.toLong())
        animatorTestRule.advanceTimeBy(500)

        assertThat(states)
@@ -206,12 +206,12 @@ class LoadingEffectTest : SysuiTestCase() {
        assertThat(isFinished).isFalse()

        loadingEffect.play()
        animatorTestRule.advanceTimeBy(config.easeInDuration.toLong() + 500L)
        animatorTestRule.advanceAnimationDuration(config.easeInDuration.toLong() + 500L)

        assertThat(isFinished).isFalse()

        loadingEffect.finish()
        animatorTestRule.advanceTimeBy(config.easeOutDuration.toLong() + 500L)
        animatorTestRule.advanceAnimationDuration(config.easeOutDuration.toLong() + 500L)

        assertThat(isFinished).isTrue()
    }
+5 −1
Original line number Diff line number Diff line
@@ -193,7 +193,11 @@ class FoldLightRevealOverlayAnimationTest : SysuiTestCase() {
        }

    private fun TestScope.advanceTime(timeMs: Long) {
        if (timeMs == ANIMATION_DURATION) {
            animatorTestRule.advanceAnimationDuration(timeMs)
        } else {
            animatorTestRule.advanceTimeBy(timeMs)
        }
        advanceTimeBy(timeMs)
    }

+4 −0
Original line number Diff line number Diff line
@@ -930,6 +930,10 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
    }

    private void advanceTimeBy(long timeDelta) {
        if (timeDelta == mWaitAnimationDuration) {
            mAnimatorTestRule.advanceAnimationDuration(timeDelta);
            return;
        }
        mAnimatorTestRule.advanceTimeBy(timeDelta);
    }

Loading