summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/BiometricServiceBase.java15
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/EnrollClient.java31
2 files changed, 17 insertions, 29 deletions
diff --git a/services/core/java/com/android/server/biometrics/sensors/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/sensors/BiometricServiceBase.java
index 1af492876400..9f5abd873b4f 100644
--- a/services/core/java/com/android/server/biometrics/sensors/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/sensors/BiometricServiceBase.java
@@ -105,6 +105,11 @@ public abstract class BiometricServiceBase<T> extends SystemService
protected final ClientMonitor.FinishCallback mClientFinishCallback =
(clientMonitor, success) -> {
removeClient(clientMonitor);
+ // When enrollment finishes, update this group's authenticator id, as the HAL has
+ // already generated a new authenticator id when the new biometric is enrolled.
+ if (clientMonitor instanceof EnrollClient) {
+ updateActiveGroup(clientMonitor.getTargetUserId());
+ }
};
private IBiometricService mBiometricService;
@@ -373,15 +378,7 @@ public abstract class BiometricServiceBase<T> extends SystemService
}
final EnrollClient enrollClient = (EnrollClient) client;
-
- if (enrollClient.onEnrollResult(identifier, remaining)) {
- removeClient(enrollClient);
- // When enrollment finishes, update this group's authenticator id, as the HAL has
- // already generated a new authenticator id when the new biometric is enrolled.
- if (identifier instanceof Fingerprint) {
- updateActiveGroup(((Fingerprint)identifier).getGroupId());
- }
- }
+ enrollClient.onEnrollResult(identifier, remaining);
}
protected void handleError(int error, int vendorCode) {
diff --git a/services/core/java/com/android/server/biometrics/sensors/EnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/EnrollClient.java
index 939c4203ec88..a3d96778d177 100644
--- a/services/core/java/com/android/server/biometrics/sensors/EnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/EnrollClient.java
@@ -55,36 +55,27 @@ public abstract class EnrollClient<T> extends AcquisitionClient<T> {
mShouldVibrate = shouldVibrate;
}
- public boolean onEnrollResult(BiometricAuthenticator.Identifier identifier,
- int remaining) {
- if (remaining == 0) {
- mBiometricUtils.addBiometricForUser(getContext(), getTargetUserId(), identifier);
- logOnEnrolled(getTargetUserId(),
- System.currentTimeMillis() - mEnrollmentStartTimeMs,
- true /* enrollSuccessful */);
- }
- notifyUserActivity();
- return sendEnrollResult(identifier, remaining);
- }
-
- /*
- * @return true if we're done.
- */
- private boolean sendEnrollResult(BiometricAuthenticator.Identifier identifier, int remaining) {
+ public void onEnrollResult(BiometricAuthenticator.Identifier identifier, int remaining) {
if (mShouldVibrate) {
vibrateSuccess();
}
+ final ClientMonitorCallbackConverter listener = getListener();
try {
- final ClientMonitorCallbackConverter listener = getListener();
if (listener != null) {
listener.onEnrollResult(identifier, remaining);
}
- return remaining == 0;
} catch (RemoteException e) {
- Slog.w(TAG, "Failed to notify EnrollResult:", e);
- return true;
+ Slog.e(TAG, "Remote exception", e);
}
+
+ if (remaining == 0) {
+ mBiometricUtils.addBiometricForUser(getContext(), getTargetUserId(), identifier);
+ logOnEnrolled(getTargetUserId(), System.currentTimeMillis() - mEnrollmentStartTimeMs,
+ true /* enrollSuccessful */);
+ mFinishCallback.onClientFinished(this, true /* success */);
+ }
+ notifyUserActivity();
}
@Override