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

Commit 6464c8d2 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Scale timeout with animation scale"

parents 58b5f697 a19d781a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -92,7 +92,10 @@ class RemoteAnimationController {
            onAnimationFinished();
            return;
        }
        mHandler.postDelayed(mTimeoutRunnable, TIMEOUT_MS);

        // Scale the timeout with the animator scale the controlling app is using.
        mHandler.postDelayed(mTimeoutRunnable,
                (long) (TIMEOUT_MS * mService.getCurrentAnimatorScale()));
        try {
            mRemoteAnimationAdapter.getRunner().onAnimationStart(createAnimations(),
                    mFinishedCallback);
+27 −1
Original line number Diff line number Diff line
@@ -19,12 +19,12 @@ package com.android.server.wm;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;

import android.graphics.Point;
import android.graphics.Rect;
import android.platform.test.annotations.Postsubmit;
import android.support.test.filters.FlakyTest;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
@@ -136,6 +136,32 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
        verify(mFinishedCallback).onAnimationFinished(eq(adapter));
    }

    @Test
    public void testTimeout_scaled() throws Exception {
        sWm.setAnimationScale(2, 5.0f);
        try{
            final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION, "testWin");
            final AnimationAdapter adapter = mController.createAnimationAdapter(win.mAppToken,
                    new Point(50, 100), new Rect(50, 100, 150, 150));
            adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
            mController.goodToGo();

            mClock.fastForward(2500);
            mHandler.timeAdvance();

            verify(mMockRunner, never()).onAnimationCancelled();

            mClock.fastForward(10000);
            mHandler.timeAdvance();

            verify(mMockRunner).onAnimationCancelled();
            verify(mFinishedCallback).onAnimationFinished(eq(adapter));
        } finally {
            sWm.setAnimationScale(2, 1.0f);
        }

    }

    @Test
    public void testZeroAnimations() throws Exception {
        mController.goodToGo();