diff options
| author | 2022-03-24 10:58:41 -0400 | |
|---|---|---|
| committer | 2022-03-24 11:17:43 -0400 | |
| commit | e2608c01b74ea2f7da1727d68abf1a07abe3f780 (patch) | |
| tree | b5c964fd94f6730727f32f1ddfb7e43076891a86 | |
| parent | 23d65f1d38ae0e5fcb0beb4e38f451c908b55019 (diff) | |
[DO NOT MERGE] Move onDrawn callback earlier
The new remote animation flow is waiting for the onDrawn callback to
be issues before triggering the exit animation. This means for
wakeAndUnlock flows, onDrawn cannot wait for the exit animation to
begin. Remove all code that put this callback into a pending state.
Also remove BiometricUnlockController delay. This causes a poor
animation experience when unlocking with devices (sunfish) that delay
the unlock.
Fixes: 220340156
Test: atest KeyguardViewMediatorTest && Use rear FPS devices with AoD
on/off
Change-Id: I6129c9d1fea76f8dded2a8d567c75fb21085a5dd
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java | 36 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java | 12 |
2 files changed, 3 insertions, 45 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 8d9fbca418f6..b7916f9f09e1 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -210,7 +210,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, private static final int KEYGUARD_DONE_PENDING_TIMEOUT = 13; private static final int NOTIFY_STARTED_WAKING_UP = 14; private static final int NOTIFY_SCREEN_TURNED_ON = 15; - private static final int NOTIFY_SCREEN_TURNED_OFF = 16; private static final int NOTIFY_STARTED_GOING_TO_SLEEP = 17; private static final int SYSTEM_READY = 18; private static final int CANCEL_KEYGUARD_EXIT_ANIM = 19; @@ -441,7 +440,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, private boolean mInGestureNavigationMode; private boolean mWakeAndUnlocking; - private IKeyguardDrawnCallback mDrawnCallback; private CharSequence mCustomMessage; /** @@ -1264,7 +1262,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, } public void onScreenTurnedOff() { - notifyScreenTurnedOff(); mUpdateMonitor.dispatchScreenTurnedOff(); } @@ -1668,12 +1665,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, mHandler.sendMessage(msg); } - private void notifyScreenTurnedOff() { - if (DEBUG) Log.d(TAG, "notifyScreenTurnedOff"); - Message msg = mHandler.obtainMessage(NOTIFY_SCREEN_TURNED_OFF); - mHandler.sendMessage(msg); - } - /** * Send message to keyguard telling it to show itself * @see #handleShow @@ -1861,9 +1852,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, handleNotifyScreenTurnedOn(); Trace.endSection(); break; - case NOTIFY_SCREEN_TURNED_OFF: - handleNotifyScreenTurnedOff(); - break; case NOTIFY_STARTED_WAKING_UP: Trace.beginSection( "KeyguardViewMediator#handleMessage NOTIFY_STARTED_WAKING_UP"); @@ -2245,16 +2233,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, IRemoteAnimationRunner runner = mKeyguardExitAnimationRunner; mKeyguardExitAnimationRunner = null; - if (mWakeAndUnlocking && mDrawnCallback != null) { - - // Hack level over 9000: To speed up wake-and-unlock sequence, force it to report - // the next draw from here so we don't have to wait for window manager to signal - // this to our ViewRootImpl. - mKeyguardViewControllerLazy.get().getViewRootImpl().setReportNextDraw(); - notifyDrawn(mDrawnCallback); - mDrawnCallback = null; - } - LatencyTracker.getInstance(mContext) .onActionEnd(LatencyTracker.ACTION_LOCKSCREEN_UNLOCK); @@ -2610,11 +2588,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, mKeyguardViewControllerLazy.get().onScreenTurningOn(); if (callback != null) { - if (mWakeAndUnlocking) { - mDrawnCallback = callback; - } else { - notifyDrawn(callback); - } + notifyDrawn(callback); } } Trace.endSection(); @@ -2629,13 +2603,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, Trace.endSection(); } - private void handleNotifyScreenTurnedOff() { - synchronized (this) { - if (DEBUG) Log.d(TAG, "handleNotifyScreenTurnedOff"); - mDrawnCallback = null; - } - } - private void notifyDrawn(final IKeyguardDrawnCallback callback) { Trace.beginSection("KeyguardViewMediator#notifyDrawn"); if (mPendingDrawnTasks.decrementAndGet() == 0) { @@ -2804,7 +2771,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, pw.print(" mPendingLock: "); pw.println(mPendingLock); pw.print(" mPendingDrawnTasks: "); pw.println(mPendingDrawnTasks.get()); pw.print(" mWakeAndUnlocking: "); pw.println(mWakeAndUnlocking); - pw.print(" mDrawnCallback: "); pw.println(mDrawnCallback); } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index 98b5dcc25730..2df56bfa3909 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -405,7 +405,6 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp // During wake and unlock, we need to draw black before waking up to avoid abrupt // brightness changes due to display state transitions. boolean alwaysOnEnabled = mDozeParameters.getAlwaysOn(); - boolean delayWakeUp = mode == MODE_WAKE_AND_UNLOCK && alwaysOnEnabled && mWakeUpDelay > 0; Runnable wakeUp = ()-> { if (!wasDeviceInteractive) { if (DEBUG_BIO_WAKELOCK) { @@ -414,15 +413,12 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp mPowerManager.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE, "android.policy:BIOMETRIC"); } - if (delayWakeUp) { - mKeyguardViewMediator.onWakeAndUnlocking(); - } Trace.beginSection("release wake-and-unlock"); releaseBiometricWakeLock(); Trace.endSection(); }; - if (!delayWakeUp && mMode != MODE_NONE) { + if (mMode != MODE_NONE) { wakeUp.run(); } switch (mMode) { @@ -472,11 +468,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp mUpdateMonitor.awakenFromDream(); } mNotificationShadeWindowController.setNotificationShadeFocusable(false); - if (delayWakeUp) { - mHandler.postDelayed(wakeUp, mWakeUpDelay); - } else { - mKeyguardViewMediator.onWakeAndUnlocking(); - } + mKeyguardViewMediator.onWakeAndUnlocking(); Trace.endSection(); break; case MODE_ONLY_WAKE: |