From 1f57d493565970d575fc7bd6297ec74c0250da37 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Fri, 30 Oct 2020 14:18:18 -0700 Subject: Add FingerprintManager#hasEnrolledTemplatesForAnySensor Also fixes places where "e.rethrowFromSystemServer()" wasn't actually throwing the exception Bug: 171420675 Test: Builds Change-Id: I8a077a9184d6efaeb39ed66652a7f44fa9f8ddb6 --- .../hardware/fingerprint/FingerprintManager.java | 29 ++++++++++++++++++---- .../hardware/fingerprint/IFingerprintService.aidl | 3 +++ 2 files changed, 27 insertions(+), 5 deletions(-) (limited to 'core/java') diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 2aefb1da4783..434c71ed2eae 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -797,6 +797,26 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing return hasEnrolledFingerprints(userId); } + /** + * Checks if the specified user has enrollments in any of the specified sensors. + * @hide + */ + @RequiresPermission(USE_BIOMETRIC_INTERNAL) + public boolean hasEnrolledTemplatesForAnySensor(int userId, + @NonNull List sensors) { + if (mService == null) { + Slog.w(TAG, "hasEnrolledTemplatesForAnySensor: no fingerprint service"); + return false; + } + + try { + return mService.hasEnrolledTemplatesForAnySensor(userId, sensors, + mContext.getOpPackageName()); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * @hide */ @@ -810,7 +830,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mService.setUdfpsOverlayController(controller); } catch (RemoteException e) { - e.rethrowFromSystemServer(); + throw e.rethrowFromSystemServer(); } } @@ -827,7 +847,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mService.onPointerDown(sensorId, x, y, minor, major); } catch (RemoteException e) { - e.rethrowFromSystemServer(); + throw e.rethrowFromSystemServer(); } } @@ -844,7 +864,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mService.onPointerUp(sensorId); } catch (RemoteException e) { - e.rethrowFromSystemServer(); + throw e.rethrowFromSystemServer(); } } @@ -917,9 +937,8 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } return mService.getSensorPropertiesInternal(mContext.getOpPackageName()); } catch (RemoteException e) { - e.rethrowFromSystemServer(); + throw e.rethrowFromSystemServer(); } - return new ArrayList<>(); } /** diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index 95668372c5a1..be14f812bf98 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -101,6 +101,9 @@ interface IFingerprintService { // Determine if a user has at least one enrolled fingerprint boolean hasEnrolledFingerprints(int userId, String opPackageName); + // Determine if a user has at least one enrolled fingerprint in any of the specified sensors + boolean hasEnrolledTemplatesForAnySensor(int userId, in List sensors, String opPackageName); + // Return the LockoutTracker status for the specified user int getLockoutModeForUser(int userId); -- cgit v1.2.3