From 52c21c8c345dd9846184a6db8374c35ce2798e3e Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Mon, 4 Jun 2018 19:03:20 -0700 Subject: Hide backdrop when waking up from fp When the display is off or in low power mode, and the user wakes it up using fingerprint, we should go directly to an unlocked state hiding whatever was visible on the backdrop. You might be able to briefly see the backdrop otherwise. Test: wake up from AOD with/without lockscreen image Test: wake up from pulse with/without lockscreen image Test: unlock with fp from lock screen Change-Id: Ia27c80b32863c57461fb6aa74f6c31bf0803b6fb Fixes: 80531298 --- .../statusbar/phone/FingerprintUnlockController.java | 13 +++++++++++-- .../src/com/android/systemui/statusbar/phone/StatusBar.java | 10 ++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) (limited to 'packages/SystemUI/src') diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java index 76860e62435a..f0b1a82cfc2f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java @@ -403,10 +403,19 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { pw.print(" mWakeLock="); pw.println(mWakeLock); } + /** + * Successful authentication with fingerprint that wakes up the device. + */ public boolean isWakeAndUnlock() { - return mMode == MODE_UNLOCK - || mMode == MODE_WAKE_AND_UNLOCK + return mMode == MODE_WAKE_AND_UNLOCK || mMode == MODE_WAKE_AND_UNLOCK_PULSING || mMode == MODE_WAKE_AND_UNLOCK_FROM_DREAM; } + + /** + * Successful authentication with fingerprint when the screen was either on or off. + */ + public boolean isFingerprintUnlock() { + return isWakeAndUnlock() || mMode == MODE_UNLOCK; + } } 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 c70f03405db3..7bbeed63fd98 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1599,7 +1599,9 @@ public class StatusBar extends SystemUI implements DemoMode, return; // called too early } - if (mLaunchTransitionFadingAway) { + boolean wakeAndUnlock = mFingerprintUnlockController != null + && mFingerprintUnlockController.isWakeAndUnlock(); + if (mLaunchTransitionFadingAway || wakeAndUnlock) { mBackdrop.setVisibility(View.INVISIBLE); Trace.endSection(); return; @@ -4712,11 +4714,11 @@ public class StatusBar extends SystemUI implements DemoMode, // We don't want to end up in KEYGUARD state when we're unlocking with // fingerprint from doze. We should cross fade directly from black. - final boolean wakeAndUnlocking = mFingerprintUnlockController.getMode() - == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK; + boolean wakeAndUnlocking = mFingerprintUnlockController.isWakeAndUnlock(); // Do not animate the scrim expansion when triggered by the fingerprint sensor. - mScrimController.setExpansionAffectsAlpha(!mFingerprintUnlockController.isWakeAndUnlock()); + mScrimController.setExpansionAffectsAlpha( + !mFingerprintUnlockController.isFingerprintUnlock()); if (mBouncerShowing) { // Bouncer needs the front scrim when it's on top of an activity, -- cgit v1.2.3-59-g8ed1b