Add check for empty vendor acquired strings
Interpret empty vendor acquired strings as null to match existing
behavior for null acquired strings
Test: atest com.android.server.biometrics
Flag: EXEMPT bugfix
Bug: 374848821
Change-Id: I93b92750572a812f4993b7123fb94a689ab5debc
diff --git a/core/java/android/hardware/fingerprint/FingerprintCallback.java b/core/java/android/hardware/fingerprint/FingerprintCallback.java
index 24e9f9d..e4fbe6e 100644
--- a/core/java/android/hardware/fingerprint/FingerprintCallback.java
+++ b/core/java/android/hardware/fingerprint/FingerprintCallback.java
@@ -189,7 +189,7 @@
mEnrollmentCallback.onAcquired(acquireInfo == FINGERPRINT_ACQUIRED_GOOD);
}
final String msg = getAcquiredString(context, acquireInfo, vendorCode);
- if (msg == null || msg.isEmpty()) {
+ if (msg == null) {
return;
}
// emulate HAL 2.1 behavior and send real acquiredInfo
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index 7f1cac0..590c4d6 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -1517,7 +1517,7 @@
*/
public static String getAcquiredString(Context context, int acquireInfo, int vendorCode) {
switch (acquireInfo) {
- case FINGERPRINT_ACQUIRED_GOOD:
+ case FINGERPRINT_ACQUIRED_GOOD, FINGERPRINT_ACQUIRED_START:
return null;
case FINGERPRINT_ACQUIRED_PARTIAL:
return context.getString(
@@ -1546,13 +1546,10 @@
case FINGERPRINT_ACQUIRED_VENDOR: {
String[] msgArray = context.getResources().getStringArray(
com.android.internal.R.array.fingerprint_acquired_vendor);
- if (vendorCode < msgArray.length) {
+ if (vendorCode < msgArray.length && !msgArray[vendorCode].isEmpty()) {
return msgArray[vendorCode];
}
}
- break;
- case FINGERPRINT_ACQUIRED_START:
- return null;
}
Slog.w(TAG, "Invalid acquired message: " + acquireInfo + ", " + vendorCode);
return null;