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);