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

Commit 6215ff0e authored by Candice Lo's avatar Candice Lo Committed by Android (Google) Code Review
Browse files

Merge "fix(WindowMagnificationAnimationController): fix the timing issue" into main

parents 76c07e00 b02e204f
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -640,11 +640,10 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
    @Test
    public void deleteWindowMagnification_enabling_expectedValuesAndInvokeCallback()
            throws RemoteException {

        enableWindowMagnificationAndWaitAnimating(mWaitPartialAnimationDuration,
                mAnimationCallback);

        Mockito.reset(mSpyController);
        resetMockObjects();
        getInstrumentation().runOnMainSync(() -> {
            mWindowMagnificationAnimationController.deleteWindowMagnification(
                    mAnimationCallback2);
@@ -658,6 +657,11 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
            mValueAnimator.end();
        });

        // wait for animation returns
        waitForIdleSync();

        // {@link ValueAnimator.AnimatorUpdateListener#onAnimationUpdate(ValueAnimator)} will only
        // be triggered once in {@link ValueAnimator#end()}
        verify(mSpyController).enableWindowMagnificationInternal(
                mScaleCaptor.capture(),
                mCenterXCaptor.capture(), mCenterYCaptor.capture(),
@@ -717,7 +721,11 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
        deleteWindowMagnificationAndWaitAnimating(mWaitPartialAnimationDuration,
                mAnimationCallback);

        deleteWindowMagnificationAndWaitAnimating(0, null);
        // Verifying that WindowMagnificationController#deleteWindowMagnification is never called
        // in previous steps
        verify(mSpyController, never()).deleteWindowMagnification();

        deleteWindowMagnificationWithoutAnimation();

        verify(mSpyController).deleteWindowMagnification();
        verifyFinalSpec(Float.NaN, Float.NaN, Float.NaN);
@@ -810,6 +818,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
            mWindowMagnificationAnimationController.enableWindowMagnification(
                    targetScale, targetCenterX, targetCenterY, null);
        });
        // wait for animation returns
        waitForIdleSync();
    }

    private void enableWindowMagnificationAndWaitAnimating(long duration,
@@ -829,12 +839,16 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
                    targetScale, targetCenterX, targetCenterY, callback);
            advanceTimeBy(duration);
        });
        // wait for animation returns
        waitForIdleSync();
    }

    private void deleteWindowMagnificationWithoutAnimation() {
        getInstrumentation().runOnMainSync(() -> {
            mWindowMagnificationAnimationController.deleteWindowMagnification(null);
        });
        // wait for animation returns
        waitForIdleSync();
    }

    private void deleteWindowMagnificationAndWaitAnimating(long duration,
@@ -843,6 +857,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
            mWindowMagnificationAnimationController.deleteWindowMagnification(callback);
            advanceTimeBy(duration);
        });
        // wait for animation returns
        waitForIdleSync();
    }

    private void verifyStartValue(ArgumentCaptor<Float> captor, float startValue) {