Merge "Allow udfps when strong auth is required" into sc-v2-dev
This commit is contained in:
@@ -43,8 +43,7 @@ data class KeyguardFingerprintListenModel(
|
||||
val shouldListenForFingerprintAssistant: Boolean,
|
||||
val switchingUser: Boolean,
|
||||
val udfps: Boolean,
|
||||
val userDoesNotHaveTrust: Boolean,
|
||||
val userNeedsStrongAuth: Boolean
|
||||
val userDoesNotHaveTrust: Boolean
|
||||
) : KeyguardListenModel() {
|
||||
override val modality: Int = TYPE_FACE
|
||||
}
|
||||
|
||||
@@ -2222,11 +2222,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
!(mFingerprintLockedOut && mBouncer && mCredentialAttempted);
|
||||
|
||||
final boolean isEncryptedOrLockdownForUser = isEncryptedOrLockdown(user);
|
||||
final boolean userNeedsStrongAuth = userNeedsStrongAuth();
|
||||
final boolean shouldListenUdfpsState = !isUdfps
|
||||
|| (!userCanSkipBouncer
|
||||
&& !isEncryptedOrLockdownForUser
|
||||
&& !userNeedsStrongAuth
|
||||
&& userDoesNotHaveTrust
|
||||
&& !mFingerprintLockedOut);
|
||||
|
||||
@@ -2257,8 +2255,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
shouldListenForFingerprintAssistant,
|
||||
mSwitchingUser,
|
||||
isUdfps,
|
||||
userDoesNotHaveTrust,
|
||||
userNeedsStrongAuth));
|
||||
userDoesNotHaveTrust));
|
||||
}
|
||||
|
||||
return shouldListen;
|
||||
@@ -2362,7 +2359,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
|| (DEBUG_FINGERPRINT
|
||||
&& model instanceof KeyguardFingerprintListenModel
|
||||
&& mFingerprintRunningState != BIOMETRIC_STATE_RUNNING);
|
||||
if (notYetRunning && model.getListening()) {
|
||||
final boolean running =
|
||||
(DEBUG_FACE
|
||||
&& model instanceof KeyguardFaceListenModel
|
||||
&& mFaceRunningState == BIOMETRIC_STATE_RUNNING)
|
||||
|| (DEBUG_FINGERPRINT
|
||||
&& model instanceof KeyguardFingerprintListenModel
|
||||
&& mFingerprintRunningState == BIOMETRIC_STATE_RUNNING);
|
||||
if (notYetRunning && model.getListening()
|
||||
|| running && !model.getListening()) {
|
||||
mListenModels.add(model);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,8 +75,7 @@ private fun fingerprintModel(user: Int) = KeyguardFingerprintListenModel(
|
||||
shouldListenForFingerprintAssistant = false,
|
||||
switchingUser = false,
|
||||
udfps = false,
|
||||
userDoesNotHaveTrust = false,
|
||||
userNeedsStrongAuth = false
|
||||
userDoesNotHaveTrust = false
|
||||
)
|
||||
|
||||
private fun faceModel(user: Int) = KeyguardFaceListenModel(
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.keyguard;
|
||||
import static android.telephony.SubscriptionManager.DATA_ROAMING_DISABLE;
|
||||
import static android.telephony.SubscriptionManager.NAME_SOURCE_CARRIER_ID;
|
||||
|
||||
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
|
||||
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -960,6 +961,19 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
||||
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(true)).isEqualTo(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStartUdfpsServiceStrongAuthRequiredAfterTimeout() {
|
||||
// GIVEN status bar state is on the keyguard
|
||||
mStatusBarStateListener.onStateChanged(StatusBarState.KEYGUARD);
|
||||
|
||||
// WHEN user loses smart unlock trust
|
||||
when(mStrongAuthTracker.getStrongAuthForUser(KeyguardUpdateMonitor.getCurrentUser()))
|
||||
.thenReturn(SOME_AUTH_REQUIRED_AFTER_USER_REQUEST);
|
||||
|
||||
// THEN we should still listen for udfps
|
||||
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(true)).isEqualTo(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldNotListenForUdfps_whenTrustEnabled() {
|
||||
// GIVEN a "we should listen for udfps" state
|
||||
|
||||
Reference in New Issue
Block a user