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

Commit 4cb8f430 authored by lbill's avatar lbill Committed by Bill Lin
Browse files

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
parent 99c28e88
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);
    }

    /**