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

Commit af7d8a31 authored by Xiaowen Lei's avatar Xiaowen Lei
Browse files

Delay awaken from Dream to avoid wallpaper flickering.

Bug: 240452659
Fix: 240452659
Test: repeatedly unlocking from Dream.
Change-Id: Iba6ee6fcfce9083f4e348c5f4ad60903262f3705
parent f676e7d7
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -2383,10 +2383,10 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
    private void handleHide() {
        Trace.beginSection("KeyguardViewMediator#handleHide");

        // It's possible that the device was unlocked in a dream state. It's time to wake up.
        if (mAodShowing || mDreamOverlayShowing) {
            PowerManager pm = mContext.getSystemService(PowerManager.class);
            pm.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE,
        // It's possible that the device was unlocked (via BOUNCER) while dozing. It's time to
        // wake up.
        if (mAodShowing) {
            mPM.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE,
                    "com.android.systemui:BOUNCER_DOZING");
        }

@@ -2415,6 +2415,13 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
                            null /* nonApps */, null /* finishedCallback */);
                });
            }

            // It's possible that the device was unlocked (via BOUNCER or Fingerprint) while
            // dreaming. It's time to wake up.
            if (mDreamOverlayShowing) {
                mPM.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE,
                        "com.android.systemui:UNLOCK_DREAMING");
            }
        }
        Trace.endSection();
    }
+2 −1
Original line number Diff line number Diff line
@@ -512,7 +512,8 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
                    Trace.beginSection("MODE_WAKE_AND_UNLOCK");
                } else {
                    Trace.beginSection("MODE_WAKE_AND_UNLOCK_FROM_DREAM");
                    mUpdateMonitor.awakenFromDream();
                    // Don't call awaken from Dream here. In order to avoid flickering, wait until
                    // later to awaken.
                }
                mNotificationShadeWindowController.setNotificationShadeFocusable(false);
                mKeyguardViewMediator.onWakeAndUnlocking();