diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 2a41c906ee0a6..e350fe7dde530 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3896,15 +3896,6 @@ public class StatusBar extends SystemUI implements DemoMode, updateQsExpansionEnabled(); mKeyguardViewMediator.setDozing(mDozing); - if ((isDozing && mWakefulnessLifecycle.getLastSleepReason() - == PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON) - || (!isDozing && mWakefulnessLifecycle.getLastWakeReason() - == PowerManager.WAKE_REASON_POWER_BUTTON)) { - mLightRevealScrim.setRevealEffect(mPowerButtonReveal); - } else if (!(mLightRevealScrim.getRevealEffect() instanceof CircleReveal)) { - mLightRevealScrim.setRevealEffect(LiftReveal.INSTANCE); - } - mNotificationsController.requestNotificationUpdate("onDozingChanged"); updateDozingState(); mDozeServiceHost.updateDozing(); @@ -3913,6 +3904,27 @@ public class StatusBar extends SystemUI implements DemoMode, Trace.endSection(); } + /** + * Updates the light reveal effect to reflect the reason we're waking or sleeping (for example, + * from the power button). + * @param wakingUp Whether we're updating because we're waking up (true) or going to sleep + * (false). + */ + private void updateRevealEffect(boolean wakingUp) { + if (mLightRevealScrim == null) { + return; + } + + if (wakingUp && mWakefulnessLifecycle.getLastWakeReason() + == PowerManager.WAKE_REASON_POWER_BUTTON + || !wakingUp && mWakefulnessLifecycle.getLastSleepReason() + == PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON) { + mLightRevealScrim.setRevealEffect(mPowerButtonReveal); + } else if (!(mLightRevealScrim.getRevealEffect() instanceof CircleReveal)) { + mLightRevealScrim.setRevealEffect(LiftReveal.INSTANCE); + } + } + public LightRevealScrim getLightRevealScrim() { return mLightRevealScrim; } @@ -4045,6 +4057,7 @@ public class StatusBar extends SystemUI implements DemoMode, public void onStartedGoingToSleep() { String tag = "StatusBar#onStartedGoingToSleep"; DejankUtils.startDetectingBlockingIpcs(tag); + updateRevealEffect(false /* wakingUp */); updateNotificationPanelTouchState(); notifyHeadsUpGoingToSleep(); dismissVolumeDialog(); @@ -4076,6 +4089,7 @@ public class StatusBar extends SystemUI implements DemoMode, // This is intentionally below the stopDozing call above, since it avoids that we're // unnecessarily animating the wakeUp transition. Animations should only be enabled // once we fully woke up. + updateRevealEffect(true /* wakingUp */); updateNotificationPanelTouchState(); mPulseExpansionHandler.onStartedWakingUp();