From 1c29d8f4f0595efc3399d4917b7b66b2e8c413a8 Mon Sep 17 00:00:00 2001 From: lbill Date: Wed, 31 May 2023 19:15:39 +0000 Subject: [PATCH] Make the condition of DISABLE_RECENT more robust in launch GCA CUJ There's race on below CUJs 1. Keyguard Fingerprint Unlock + Double tap power key to launch camera 2. Keyguard Face Unlock + Double tap power key to launch camera Latency info a. Fingerprint unlock latency : 120ms ~ 180ms b. Face unlock latency : 800ms ~ 1000ms c. Double tap power key launch camera gesture(b/195788686#comment12) : 170ms ~ 190ms The 100% repro CUJs on both gesture nav & 3-button nav modes 1. UDFPS + double tap launch GCA gesture t0 : User finger down, UDFPS request auth t1 : Double tap power key to launch camera t2 : UDFPS auth passed, keyguard is going away t3 : Camera launched occluded keyguard(mPowerGestureIntercepted=true), `flags |= StatusBarManager.DISABLE_RECENT;` t4 : Keyguard hide, launcher on top 2. Face + double tap launch GCA gesture t0 : User lift to wake, Face auth t1 : Double tap power key to launch camera t2 : Face auth passed, keyguard is going away t3 : Camera launched occluded keyguard(mPowerGestureIntercepted=true), `flags |= StatusBarManager.DISABLE_RECENT;` t4 : Keyguard hide, launcher on top Bug: 268593702 Fixes: 284669723 Test: Concurrently unlock by UDFPS + double tap power key launch GCA Make sure the recents keys and overview works good in launcher Test: forest v2/aep-ironwood/suite/test-mapping-ironwood-p0-cujs Test: atest BiometricsWakeAndUnlockLaunchCamera Test: atest LaunchCameraFromHomeIn3ButtonMode Test: atest LaunchCameraFromLockScreenIn3ButtonMode Change-Id: Ia9243d3d3569747afa9ef8d8a27c59f30573a6ad --- .../com/android/systemui/keyguard/KeyguardViewMediator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 45e4623c7e279..4a06e61787752 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -1943,7 +1943,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable, startKeyguardExitAnimation(0, 0); } - mPowerGestureIntercepted = mUpdateMonitor.isSecureCameraLaunchedOverKeyguard(); + mPowerGestureIntercepted = + isOccluded && mUpdateMonitor.isSecureCameraLaunchedOverKeyguard(); if (mOccluded != isOccluded) { mOccluded = isOccluded;