Merge "Move doze animation until finished waking up" into udc-qpr-dev am: 46a3050cbf am: 2eb39efe3b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23416276 Change-Id: Id1fb1d9b843c7ee168143b65a3a43f8ac8149826 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user