From e93b87f140b966d7d342ef559b69492521e117cd Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 14 Jan 2021 11:36:13 -0500 Subject: [PATCH] PreDraw scrim on AOD -> UNLOCKED Scheduling a frame isn't enough when directly transitioning to unlocked from AOD (ie: security is set to None), need to update the scrim immediatley so that the nav bar has the correct color. Test: manual Bug: 177238312 Change-Id: Ibe50e9749439ef1f31ac098af3da067a30f97861 --- .../com/android/systemui/statusbar/phone/ScrimController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index ab96a6d26dfda..fc1811b11d73b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -370,13 +370,15 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump if (mKeyguardUpdateMonitor.needsSlowUnlockTransition() && mState == ScrimState.UNLOCKED) { mAnimationDelay = StatusBar.FADE_KEYGUARD_START_DELAY; scheduleUpdate(); - } else if ((!mDozeParameters.getAlwaysOn() && oldState == ScrimState.AOD) + } else if ((oldState == ScrimState.AOD // leaving doze + && (!mDozeParameters.getAlwaysOn() || mState == ScrimState.UNLOCKED)) || (mState == ScrimState.AOD && !mDozeParameters.getDisplayNeedsBlanking())) { // Scheduling a frame isn't enough when: // • Leaving doze and we need to modify scrim color immediately // • ColorFade will not kick-in and scrim cannot wait for pre-draw. onPreDraw(); } else { + // Schedule a frame scheduleUpdate(); }