From b3890939c4f402920dc3bebc67f77e422d81a3d5 Mon Sep 17 00:00:00 2001 From: kwaky Date: Tue, 9 Jun 2020 17:03:12 -0700 Subject: [PATCH] Show Bouncer (Unocclude it) if Activity Dismissing Keyguard is launched while Keyguard is occluded. Test: android.server.wm.MultiDisplayLockedKeyguardTests passing without flakiness (10 passes/10 attempts). Bug: 156117648 Change-Id: I744c566433614a9de6fec3de9d4e9581472f73cf --- .../systemui/car/keyguard/CarKeyguardViewController.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/CarSystemUI/src/com/android/systemui/car/keyguard/CarKeyguardViewController.java b/packages/CarSystemUI/src/com/android/systemui/car/keyguard/CarKeyguardViewController.java index 2dad5f872e73e..69766cc6c0d0a 100644 --- a/packages/CarSystemUI/src/com/android/systemui/car/keyguard/CarKeyguardViewController.java +++ b/packages/CarSystemUI/src/com/android/systemui/car/keyguard/CarKeyguardViewController.java @@ -103,6 +103,7 @@ public class CarKeyguardViewController extends OverlayViewController implements private KeyguardBouncer mBouncer; private OnKeyguardCancelClickedListener mKeyguardCancelClickedListener; private boolean mShowing; + private boolean mIsOccluded; @Inject public CarKeyguardViewController( @@ -220,6 +221,7 @@ public class CarKeyguardViewController extends OverlayViewController implements @Override public void setOccluded(boolean occluded, boolean animate) { + mIsOccluded = occluded; getOverlayViewGlobalStateController().setOccluded(occluded); if (!occluded) { reset(/* hideBouncerWhenShowing= */ false); @@ -244,6 +246,12 @@ public class CarKeyguardViewController extends OverlayViewController implements @Override public void dismissAndCollapse() { + // If dismissing and collapsing Keyguard is requested (e.g. by a Keyguard-dismissing + // Activity) while Keyguard is occluded, unocclude Keyguard so the user can authenticate to + // dismiss Keyguard. + if (mIsOccluded) { + setOccluded(/* occluded= */ false, /* animate= */ false); + } if (!mBouncer.isSecure()) { hide(/* startTime= */ 0, /* fadeoutDuration= */ 0); }