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
This commit is contained in:
lbill
2023-07-18 04:29:29 +00:00
committed by Bill Lin
parent 99c28e88c5
commit 4cb8f4302d

View File

@@ -2945,6 +2945,7 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
}
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 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
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 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
pw.print(" mPendingLock: "); pw.println(mPendingLock);
pw.print(" wakeAndUnlocking: "); pw.println(mWakeAndUnlocking);
pw.print(" mPendingPinLock: "); pw.println(mPendingPinLock);
pw.print(" mPowerGestureIntercepted: "); pw.println(mPowerGestureIntercepted);
}
/**