Check whether udfps is supported instead of enrolled
In case there are delays in onEnrollmentChanged, let's make sure that KeyguardUpdateMonitor uses the correct logic for whether to run UDFPS or not. Test: atest LockIconViewControllerTest Bug: 205670174 Change-Id: Ia2b4fd290b4d78819fabf7bea744faed62fa0d3b
This commit is contained in:
@@ -2044,17 +2044,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if there's at least one udfps enrolled
|
||||
* @return true if there's at least one udfps enrolled for the current user.
|
||||
*/
|
||||
public boolean isUdfpsEnrolled() {
|
||||
return mIsUdfpsEnrolled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return if udfps is available on this device. will return true even if the user hasn't
|
||||
* enrolled udfps. This may be false if called before onAllAuthenticatorsRegistered.
|
||||
* @return true if udfps HW is supported on this device. Can return true even if the user has
|
||||
* not enrolled udfps. This may be false if called before onAllAuthenticatorsRegistered.
|
||||
*/
|
||||
public boolean isUdfpsAvailable() {
|
||||
public boolean isUdfpsSupported() {
|
||||
return mAuthController.getUdfpsProps() != null
|
||||
&& !mAuthController.getUdfpsProps().isEmpty();
|
||||
}
|
||||
@@ -2102,7 +2102,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
}
|
||||
|
||||
updateUdfpsEnrolled(getCurrentUser());
|
||||
final boolean shouldListenForFingerprint = shouldListenForFingerprint(isUdfpsEnrolled());
|
||||
final boolean shouldListenForFingerprint = shouldListenForFingerprint(isUdfpsSupported());
|
||||
final boolean runningOrRestarting = mFingerprintRunningState == BIOMETRIC_STATE_RUNNING
|
||||
|| mFingerprintRunningState == BIOMETRIC_STATE_CANCELLING_RESTARTING;
|
||||
if (runningOrRestarting && !shouldListenForFingerprint) {
|
||||
@@ -3388,11 +3388,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
+ " expected=" + (shouldListenForFingerprint(isUdfpsEnrolled()) ? 1 : 0));
|
||||
pw.println(" strongAuthFlags=" + Integer.toHexString(strongAuthFlags));
|
||||
pw.println(" trustManaged=" + getUserTrustIsManaged(userId));
|
||||
pw.println(" udfpsEnrolled=" + isUdfpsEnrolled());
|
||||
pw.println(" mFingerprintLockedOut=" + mFingerprintLockedOut);
|
||||
pw.println(" mFingerprintLockedOutPermanent=" + mFingerprintLockedOutPermanent);
|
||||
pw.println(" enabledByUser=" + mBiometricEnabledForUser.get(userId));
|
||||
if (isUdfpsEnrolled()) {
|
||||
if (isUdfpsSupported()) {
|
||||
pw.println(" udfpsEnrolled=" + isUdfpsEnrolled());
|
||||
pw.println(" shouldListenForUdfps=" + shouldListenForFingerprint(true));
|
||||
pw.println(" bouncerVisible=" + mBouncer);
|
||||
pw.println(" mStatusBarState="
|
||||
|
||||
@@ -435,7 +435,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
||||
boolean wasUdfpsSupported = mUdfpsSupported;
|
||||
boolean wasUdfpsEnrolled = mUdfpsEnrolled;
|
||||
|
||||
mUdfpsSupported = mAuthController.getUdfpsSensorLocation() != null;
|
||||
mUdfpsSupported = mKeyguardUpdateMonitor.isUdfpsSupported();
|
||||
mView.setUseBackground(mUdfpsSupported);
|
||||
|
||||
mUdfpsEnrolled = mKeyguardUpdateMonitor.isUdfpsEnrolled();
|
||||
|
||||
@@ -818,7 +818,7 @@ public class KeyguardIndicationController {
|
||||
}
|
||||
|
||||
private void showTryFingerprintMsg(int msgId, String a11yString) {
|
||||
if (mKeyguardUpdateMonitor.isUdfpsAvailable()) {
|
||||
if (mKeyguardUpdateMonitor.isUdfpsSupported()) {
|
||||
// if udfps available, there will always be a tappable affordance to unlock
|
||||
// For example, the lock icon
|
||||
if (mKeyguardBypassController.getUserHasDeviceEntryIntent()) {
|
||||
|
||||
@@ -212,6 +212,7 @@ public class LockIconViewControllerTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testUpdateFingerprintLocationOnAuthenticatorsRegistered() {
|
||||
// GIVEN fp sensor location is not available pre-init
|
||||
when(mKeyguardUpdateMonitor.isUdfpsSupported()).thenReturn(false);
|
||||
when(mAuthController.getFingerprintSensorLocation()).thenReturn(null);
|
||||
when(mAuthController.getUdfpsProps()).thenReturn(null);
|
||||
mLockIconViewController.init();
|
||||
@@ -232,7 +233,7 @@ public class LockIconViewControllerTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLockIconViewBackgroundEnabledWhenUdfpsIsAvailable() {
|
||||
public void testLockIconViewBackgroundEnabledWhenUdfpsIsSupported() {
|
||||
// GIVEN Udpfs sensor location is available
|
||||
setupUdfps();
|
||||
|
||||
@@ -247,9 +248,9 @@ public class LockIconViewControllerTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLockIconViewBackgroundDisabledWhenUdfpsIsUnavailable() {
|
||||
// GIVEN Udfps sensor location is not available
|
||||
when(mAuthController.getUdfpsSensorLocation()).thenReturn(null);
|
||||
public void testLockIconViewBackgroundDisabledWhenUdfpsIsNotSupported() {
|
||||
// GIVEN Udfps sensor location is not supported
|
||||
when(mKeyguardUpdateMonitor.isUdfpsSupported()).thenReturn(false);
|
||||
|
||||
mLockIconViewController.init();
|
||||
captureAttachListener();
|
||||
@@ -365,6 +366,7 @@ public class LockIconViewControllerTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
private Pair<Integer, PointF> setupUdfps() {
|
||||
when(mKeyguardUpdateMonitor.isUdfpsSupported()).thenReturn(true);
|
||||
final PointF udfpsLocation = new PointF(50, 75);
|
||||
final int radius = 33;
|
||||
final FingerprintSensorPropertiesInternal fpProps =
|
||||
|
||||
@@ -701,7 +701,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||
|
||||
// GIVEN fingerprint is also running (not udfps)
|
||||
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
||||
when(mKeyguardUpdateMonitor.isUdfpsAvailable()).thenReturn(false);
|
||||
when(mKeyguardUpdateMonitor.isUdfpsSupported()).thenReturn(false);
|
||||
|
||||
mController.setVisible(true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user