From 7580fad2fdeb51752d0ffccdbe11d565c4edb871 Mon Sep 17 00:00:00 2001 From: Joshua Mccloskey Date: Thu, 24 Jun 2021 11:29:14 -0700 Subject: [PATCH] Added fingerprint acquired too bright Test: Manually verified too too bright acquired message appears on keyguard. Bug: 191954958 Change-Id: I679acf4f4fd07f0a6d7d8f05a89bc239ff117fbe --- .../biometrics/BiometricFingerprintConstants.java | 10 +++++++++- .../hardware/fingerprint/FingerprintManager.java | 3 +++ core/res/res/values/symbols.xml | 1 + .../sensors/fingerprint/FingerprintUtils.java | 4 ++++ .../sensors/fingerprint/aidl/AidlConversionUtils.java | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java index e665d0fcc8368..4721f3e865431 100644 --- a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java +++ b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java @@ -209,7 +209,8 @@ public interface BiometricFingerprintConstants { FINGERPRINT_ACQUIRED_VENDOR, FINGERPRINT_ACQUIRED_START, FINGERPRINT_ACQUIRED_UNKNOWN, - FINGERPRINT_ACQUIRED_IMMOBILE}) + FINGERPRINT_ACQUIRED_IMMOBILE, + FINGERPRINT_ACQUIRED_TOO_BRIGHT}) @Retention(RetentionPolicy.SOURCE) @interface FingerprintAcquired {} @@ -286,6 +287,13 @@ public interface BiometricFingerprintConstants { */ int FINGERPRINT_ACQUIRED_IMMOBILE = 9; + /** + * For sensors that require illumination, such as optical under-display fingerprint sensors, + * the image was too bright to be used for matching. + * @hide + */ + int FINGERPRINT_ACQUIRED_TOO_BRIGHT = 10; + /** * @hide */ diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 68dd62343eb09..c104eebbdb2c6 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -1420,6 +1420,9 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing case FINGERPRINT_ACQUIRED_IMMOBILE: return context.getString( com.android.internal.R.string.fingerprint_acquired_immobile); + case FINGERPRINT_ACQUIRED_TOO_BRIGHT: + return context.getString( + com.android.internal.R.string.fingerprint_acquired_too_bright); case FINGERPRINT_ACQUIRED_VENDOR: { String[] msgArray = context.getResources().getStringArray( com.android.internal.R.array.fingerprint_acquired_vendor); diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index c05adfd4ba2e9..8d8291e964ace 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2526,6 +2526,7 @@ + diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java index d69151da55f67..0062d31962a9f 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java @@ -18,9 +18,11 @@ package com.android.server.biometrics.sensors.fingerprint; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_GOOD; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMAGER_DIRTY; +import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMMOBILE; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_INSUFFICIENT; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_PARTIAL; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_START; +import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_BRIGHT; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_FAST; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_SLOW; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_VENDOR; @@ -188,6 +190,8 @@ public class FingerprintUtils implements BiometricUtils { case FINGERPRINT_ACQUIRED_TOO_FAST: case FINGERPRINT_ACQUIRED_VENDOR: case FINGERPRINT_ACQUIRED_START: + case FINGERPRINT_ACQUIRED_TOO_BRIGHT: + case FINGERPRINT_ACQUIRED_IMMOBILE: return true; default: diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java index 0ae2e381cf149..341aaa64d4344 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java @@ -78,7 +78,7 @@ final class AidlConversionUtils { return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_UNKNOWN; } else if (aidlAcquiredInfo == AcquiredInfo.TOO_BRIGHT) { // No framework constant available - return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_UNKNOWN; + return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_BRIGHT; } else if (aidlAcquiredInfo == AcquiredInfo.IMMOBILE) { return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMMOBILE; } else if (aidlAcquiredInfo == AcquiredInfo.RETRYING_CAPTURE) {