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

Commit a9935f34 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Avoid unecessary IPC during scrim animation"

parents 107f7cc4 eea53b3c
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -255,8 +255,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
            mKeyguardFadeoutAnimation.cancel();
            mKeyguardFadeoutAnimation.cancel();
        }
        }


        // Do not let the device sleep until we're done with all animations
        // The device might sleep if it's entering AOD, we need to make sure that
        // the animation plays properly until the last frame.
        // It's important to avoid holding the wakelock unless necessary because
        // WakeLock#aqcuire will trigger an IPC and will cause jank.
        if (mState == ScrimState.AOD) {
            holdWakeLock();
            holdWakeLock();
        }


        // AOD wallpapers should fade away after a while
        // AOD wallpapers should fade away after a while
        if (mWallpaperSupportsAmbientMode && mDozeParameters.getAlwaysOn()
        if (mWallpaperSupportsAmbientMode && mDozeParameters.getAlwaysOn()
+9 −1
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.when;


import android.animation.Animator;
import android.animation.Animator;
@@ -275,7 +276,7 @@ public class ScrimControllerTest extends SysuiTestCase {
    }
    }


    @Test
    @Test
    public void testHoldsWakeLock() {
    public void testHoldsWakeLock_whenAOD() {
        mScrimController.transitionTo(ScrimState.AOD);
        mScrimController.transitionTo(ScrimState.AOD);
        verify(mWakeLock).acquire();
        verify(mWakeLock).acquire();
        verify(mWakeLock, never()).release();
        verify(mWakeLock, never()).release();
@@ -283,6 +284,13 @@ public class ScrimControllerTest extends SysuiTestCase {
        verify(mWakeLock).release();
        verify(mWakeLock).release();
    }
    }


    @Test
    public void testDoesNotHoldWakeLock_whenUnlocking() {
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        mScrimController.finishAnimationsImmediately();
        verifyZeroInteractions(mWakeLock);
    }

    @Test
    @Test
    public void testCallbackInvokedOnSameStateTransition() {
    public void testCallbackInvokedOnSameStateTransition() {
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        mScrimController.transitionTo(ScrimState.UNLOCKED);