From 74b0c462edc5e9da45a8be707fd6ce7dedbed8b0 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Tue, 26 Apr 2022 18:15:53 +0000 Subject: [PATCH] [Bouncer] fix user switch race condition When switching from user with auth i.e. password to a user that has swipe to unlock can experience a race condition where bouncer is not dismissed when switching users from bouncer. This happens when switching users very quickly. This can be resolved by changing our subscription to when a user changes. Bug: 228901381 Test: Unit test and manual test Change-Id: I7df7af986094f4719d39ee5d63ceafea8a812493 --- .../android/keyguard/KeyguardHostViewController.java | 6 ------ .../keyguard/KeyguardSecurityContainerController.java | 4 ++++ .../KeyguardSecurityContainerControllerTest.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java index 239b478949d21..804d146818123 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java @@ -67,12 +67,6 @@ public class KeyguardHostViewController extends ViewController private final KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() { - @Override - public void onUserSwitchComplete(int userId) { - mKeyguardSecurityContainerController.showPrimarySecurityScreen( - false /* turning off */); - } - @Override public void onTrustGrantedWithFlags(int flags, int userId) { if (userId != KeyguardUpdateMonitor.getCurrentUser()) return; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java index ce4aad882df94..28a3dbbf6c834 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java @@ -97,6 +97,8 @@ public class KeyguardSecurityContainerController extends ViewController showPrimarySecurityScreen(false); @VisibleForTesting final Gefingerpoken mGlobalTouchListener = new Gefingerpoken() { @@ -295,6 +297,7 @@ public class KeyguardSecurityContainerController extends ViewController