From ceeacda56f64f6a8f05da0ffc4d02d9bfcf5c8f6 Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 1 Apr 2021 13:26:29 -0400 Subject: [PATCH] Don't listen for udfps on lock down or encryption If the device is encryped or is in lock down, don't show the udfps overlay because the user cannot authenticate from this state anyway. Test: atest KeyguardUpdateMonitorTest Fixes: 183629563 Change-Id: Ie48dfa6bc4a5db0a35be02fd973d982ef3475315 --- .../android/keyguard/KeyguardUpdateMonitor.java | 1 + .../keyguard/KeyguardUpdateMonitorTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 864563ecfbce0..621ca594393eb 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -2113,6 +2113,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab return shouldListenForFingerprint() && !mBouncer && !getUserCanSkipBouncer(getCurrentUser()) + && !isEncryptedOrLockdown(getCurrentUser()) && mStrongAuthTracker.hasUserAuthenticatedSinceBoot(); } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index cfcb7bb5fec91..d544f7378f8aa 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -910,6 +910,21 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { assertThat(mKeyguardUpdateMonitor.shouldListenForUdfps()).isEqualTo(false); } + @Test + public void testShouldNotListenForUdfps_whenInLockDown() { + // GIVEN a "we should listen for udfps" state + setKeyguardBouncerVisibility(false /* isVisible */); + mStatusBarStateListener.onStateChanged(StatusBarState.KEYGUARD); + when(mStrongAuthTracker.hasUserAuthenticatedSinceBoot()).thenReturn(true); + + // WHEN device in lock down + when(mStrongAuthTracker.getStrongAuthForUser(anyInt())).thenReturn( + KeyguardUpdateMonitor.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN); + + // THEN we shouldn't listen for udfps + assertThat(mKeyguardUpdateMonitor.shouldListenForUdfps()).isEqualTo(false); + } + @Test public void testRequireUnlockForNfc_Broadcast() { KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class);