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

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

Merge "Move doze animation until finished waking up" into udc-qpr-dev

parents 436d1bef 86db01e1
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -2844,7 +2844,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
    }

    private void updateDozingState() {
        Trace.traceCounter(Trace.TRACE_TAG_APP, "dozing", mDozing ? 1 : 0);
        if (Trace.isTagEnabled(Trace.TRACE_TAG_APP)) {
            Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_APP, "Dozing", 0);
            Trace.asyncTraceForTrackBegin(Trace.TRACE_TAG_APP, "Dozing", String.valueOf(mDozing),
                    0);
        }
        Trace.beginSection("CentralSurfaces#updateDozingState");

        boolean keyguardVisible = mKeyguardStateController.isVisible();
@@ -3198,6 +3202,10 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {

        @Override
        public void onStartedWakingUp() {
            // Between onStartedWakingUp() and onFinishedWakingUp(), the system is changing the
            // display power mode. To avoid jank, animations should NOT run during these power
            // mode transitions, which means that whenever possible, animations should
            // start running during the onFinishedWakingUp() callback instead of this callback.
            String tag = "CentralSurfaces#onStartedWakingUp";
            DejankUtils.startDetectingBlockingIpcs(tag);
            mNotificationShadeWindowController.batchApplyWindowLayoutParams(()-> {
@@ -3242,6 +3250,14 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {

                updateVisibleToUser();
                updateIsKeyguard();
            });
            DejankUtils.stopDetectingBlockingIpcs(tag);
        }

        @Override
        public void onFinishedWakingUp() {
            mNotificationShadeWindowController.batchApplyWindowLayoutParams(()-> {
                // stopDozing() starts the LOCKSCREEN_TRANSITION_FROM_AOD animation.
                mDozeServiceHost.stopDozing();
                // This is intentionally below the stopDozing call above, since it avoids that we're
                // unnecessarily animating the wakeUp transition. Animations should only be enabled
@@ -3255,13 +3271,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
                if (mScreenOffAnimationController.shouldHideLightRevealScrimOnWakeUp()) {
                    mShadeController.makeExpandedInvisible();
                }

            });
            DejankUtils.stopDetectingBlockingIpcs(tag);
        }

        @Override
        public void onFinishedWakingUp() {
            mWakeUpCoordinator.setFullyAwake(true);
            mWakeUpCoordinator.setWakingUp(false, false);
            if (mKeyguardStateController.isOccluded()
+5 −1
Original line number Diff line number Diff line
@@ -1103,8 +1103,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
        clearInvocations(mNotificationPanelViewController);

        mCentralSurfaces.mWakefulnessObserver.onStartedWakingUp();
        verify(mDozeServiceHost).stopDozing();
        verify(mDozeServiceHost, never()).stopDozing();
        verify(mNotificationPanelViewController).expand(eq(false));
        mCentralSurfaces.mWakefulnessObserver.onFinishedWakingUp();
        verify(mDozeServiceHost).stopDozing();
    }

    @Test
@@ -1118,6 +1120,8 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
        mCentralSurfaces.setBouncerShowing(true);
        mCentralSurfaces.mWakefulnessObserver.onStartedWakingUp();
        verify(mNotificationPanelViewController, never()).expand(anyBoolean());
        mCentralSurfaces.mWakefulnessObserver.onFinishedWakingUp();
        verify(mDozeServiceHost).stopDozing();
    }

    @Test