Consolidate DISABLE_RECENT condition in adjustStatusBarLocked()
Due to `cameraGestureTriggered signal` && `Secure Camera launched`
are asynchronize, we need to do more check in adjustStatusBarLocked()
1. Consolidate "mPowerGestureIntercepted && mOccluded && isSecure()"
for DISABLE_RECENT in adjustStatusBarLocked()
2. Do not disable recents key when `screen lock option` is `Swipe`
Note:
CUJ : "Fingerprint | Face unlock" + "Double tap power to launch GCA"
Timing issue : get the power gesture attempt and then the non-secure
camera was launched(at the time keyguard has gone)
Bug: 284669723
Bug: 288201661
Bug: 289334181
Test: Setup screen lock and fingerprint, then double tap power key
launch GCA & Figerprint/Face auth concurrently, observe the
DISABLE_RECENT should be reset after unlocked
Test: Setup screen lock to 'swipe', then double tap power key
launch camera should not DISABLE_RECENT
Test: atest LaunchCameraFromHomeIn3ButtonMode
Test: atest LaunchCameraFromLockScreenIn3ButtonMode
Change-Id: I089a0dfd2e3cd1c501faf70fb25e496f5899ac74
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 2d82c50..ddcb31f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -2945,6 +2945,7 @@
}
private void onKeyguardExitFinished() {
+ if (DEBUG) Log.d(TAG, "onKeyguardExitFinished()");
// only play "unlock" noises if not on a call (since the incall UI
// disables the keyguard)
if (TelephonyManager.EXTRA_STATE_IDLE.equals(mPhoneState)) {
@@ -3166,13 +3167,14 @@
flags |= StatusBarManager.DISABLE_RECENT;
}
- if (mPowerGestureIntercepted) {
+ if (mPowerGestureIntercepted && mOccluded && isSecure()) {
flags |= StatusBarManager.DISABLE_RECENT;
}
if (DEBUG) {
Log.d(TAG, "adjustStatusBarLocked: mShowing=" + mShowing + " mOccluded=" + mOccluded
+ " isSecure=" + isSecure() + " force=" + forceHideHomeRecentsButtons
+ + " mPowerGestureIntercepted=" + mPowerGestureIntercepted
+ " --> flags=0x" + Integer.toHexString(flags));
}
@@ -3400,6 +3402,7 @@
pw.print(" mPendingLock: "); pw.println(mPendingLock);
pw.print(" wakeAndUnlocking: "); pw.println(mWakeAndUnlocking);
pw.print(" mPendingPinLock: "); pw.println(mPendingPinLock);
+ pw.print(" mPowerGestureIntercepted: "); pw.println(mPowerGestureIntercepted);
}
/**