From 7920117a1aa731c46cd9c3f1dac4155266b6e253 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Thu, 22 Apr 2021 14:44:25 -0700 Subject: [PATCH] Do not auth in settings if UDFPS Fixes: 185670313 Test: manual Change-Id: I0ccc85aa05807f54a38ff69a81f87e6a63be9504 --- .../fingerprint/FingerprintSettings.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index f7327a75064..a328f21e578 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -29,6 +29,7 @@ import android.content.Intent; import android.graphics.drawable.Drawable; import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.FingerprintManager; +import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.Bundle; import android.os.Handler; import android.os.UserHandle; @@ -132,6 +133,7 @@ public class FingerprintSettings extends SubSettings { protected static final boolean DEBUG = false; private FingerprintManager mFingerprintManager; + private List mSensorProperties; private boolean mInFingerprintLockout; private byte[] mToken; private boolean mLaunchedConfirm; @@ -262,6 +264,11 @@ public class FingerprintSettings extends SubSettings { } private void retryFingerprint() { + if (isUdfps()) { + // Do not authenticate for UDFPS devices. + return; + } + if (mRemovalSidecar.inProgress() || 0 == mFingerprintManager.getEnrolledFingerprints(mUserId).size()) { return; @@ -288,6 +295,7 @@ public class FingerprintSettings extends SubSettings { Activity activity = getActivity(); mFingerprintManager = Utils.getFingerprintManagerOrNull(activity); + mSensorProperties = mFingerprintManager.getSensorPropertiesInternal(); mToken = getIntent().getByteArrayExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN); @@ -355,6 +363,15 @@ public class FingerprintSettings extends SubSettings { linkInfo, adminLinkInfo); } + private boolean isUdfps() { + for (FingerprintSensorPropertiesInternal prop : mSensorProperties) { + if (prop.isAnyUdfpsType()) { + return true; + } + } + return false; + } + protected void removeFingerprintPreference(int fingerprintId) { String name = genKey(fingerprintId); Preference prefToRemove = findPreference(name);