Loading core/java/android/hardware/face/FaceManager.java +27 −22 Original line number Diff line number Diff line Loading @@ -306,22 +306,21 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollment already canceled"); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; Trace.beginSection("FaceManager#enroll"); mService.enroll(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures, previewSurface, debugConsent); final long enrollId = mService.enroll(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures, previewSurface, debugConsent); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrollId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or Loading Loading @@ -359,21 +358,20 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollRemotely is already canceled."); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; Trace.beginSection("FaceManager#enrollRemotely"); mService.enrollRemotely(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures); final long enrolId = mService.enrollRemotely(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrolId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enrollRemotely: ", e); // Though this may not be a hardware issue, it will cause apps to give up or Loading Loading @@ -713,10 +711,10 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan } } private void cancelEnrollment() { private void cancelEnrollment(long requestId) { if (mService != null) { try { mService.cancelEnrollment(mToken); mService.cancelEnrollment(mToken, requestId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -1100,9 +1098,16 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan } private class OnEnrollCancelListener implements OnCancelListener { private final long mAuthRequestId; private OnEnrollCancelListener(long id) { mAuthRequestId = id; } @Override public void onCancel() { cancelEnrollment(); Slog.d(TAG, "Cancel face enrollment requested for: " + mAuthRequestId); cancelEnrollment(mAuthRequestId); } } Loading core/java/android/hardware/face/IFaceService.aidl +5 −4 Original line number Diff line number Diff line Loading @@ -76,15 +76,16 @@ interface IFaceService { void cancelAuthenticationFromService(int sensorId, IBinder token, String opPackageName, long requestId); // Start face enrollment void enroll(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures, in Surface previewSurface, boolean debugConsent); long enroll(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures, in Surface previewSurface, boolean debugConsent); // Start remote face enrollment void enrollRemotely(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, long enrollRemotely(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures); // Cancel enrollment in progress void cancelEnrollment(IBinder token); void cancelEnrollment(IBinder token, long requestId); // Removes the specified face enrollment for the specified userId. void remove(IBinder token, int faceId, int userId, IFaceServiceReceiver receiver, Loading core/java/android/hardware/fingerprint/FingerprintManager.java +18 −12 Original line number Diff line number Diff line Loading @@ -183,9 +183,16 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } private class OnEnrollCancelListener implements OnCancelListener { private final long mAuthRequestId; private OnEnrollCancelListener(long id) { mAuthRequestId = id; } @Override public void onCancel() { cancelEnrollment(); Slog.d(TAG, "Cancel fingerprint enrollment requested for: " + mAuthRequestId); cancelEnrollment(mAuthRequestId); } } Loading Loading @@ -646,20 +653,19 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollment already canceled"); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, mContext.getOpPackageName(), enrollReason); final long enrollId = mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, mContext.getOpPackageName(), enrollReason); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrollId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or try Loading Loading @@ -1302,9 +1308,9 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing return allSensors.isEmpty() ? null : allSensors.get(0); } private void cancelEnrollment() { private void cancelEnrollment(long requestId) { if (mService != null) try { mService.cancelEnrollment(mToken); mService.cancelEnrollment(mToken, requestId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/hardware/fingerprint/IFingerprintService.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -84,11 +84,11 @@ interface IFingerprintService { void cancelAuthenticationFromService(int sensorId, IBinder token, String opPackageName, long requestId); // Start fingerprint enrollment void enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, long enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, String opPackageName, int enrollReason); // Cancel enrollment in progress void cancelEnrollment(IBinder token); void cancelEnrollment(IBinder token, long requestId); // Any errors resulting from this call will be returned to the listener void remove(IBinder token, int fingerId, int userId, IFingerprintServiceReceiver receiver, Loading services/core/java/com/android/server/biometrics/sensors/BaseClientMonitor.java +4 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.biometrics.sensors; import static com.android.internal.annotations.VisibleForTesting.Visibility; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; Loading Loading @@ -48,7 +50,6 @@ public abstract class BaseClientMonitor extends LoggableMonitor * Interface that ClientMonitor holders should use to receive callbacks. */ public interface Callback { /** * Invoked when the ClientMonitor operation has been started (e.g. reached the head of * the queue and becomes the current operation). Loading Loading @@ -203,7 +204,8 @@ public abstract class BaseClientMonitor extends LoggableMonitor } /** Signals this operation has completed its lifecycle and should no longer be used. */ void destroy() { @VisibleForTesting(visibility = Visibility.PACKAGE) public void destroy() { mAlreadyDone = true; if (mToken != null) { try { Loading Loading
core/java/android/hardware/face/FaceManager.java +27 −22 Original line number Diff line number Diff line Loading @@ -306,22 +306,21 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollment already canceled"); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; Trace.beginSection("FaceManager#enroll"); mService.enroll(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures, previewSurface, debugConsent); final long enrollId = mService.enroll(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures, previewSurface, debugConsent); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrollId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or Loading Loading @@ -359,21 +358,20 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollRemotely is already canceled."); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; Trace.beginSection("FaceManager#enrollRemotely"); mService.enrollRemotely(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures); final long enrolId = mService.enrollRemotely(userId, mToken, hardwareAuthToken, mServiceReceiver, mContext.getOpPackageName(), disabledFeatures); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrolId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enrollRemotely: ", e); // Though this may not be a hardware issue, it will cause apps to give up or Loading Loading @@ -713,10 +711,10 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan } } private void cancelEnrollment() { private void cancelEnrollment(long requestId) { if (mService != null) { try { mService.cancelEnrollment(mToken); mService.cancelEnrollment(mToken, requestId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -1100,9 +1098,16 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan } private class OnEnrollCancelListener implements OnCancelListener { private final long mAuthRequestId; private OnEnrollCancelListener(long id) { mAuthRequestId = id; } @Override public void onCancel() { cancelEnrollment(); Slog.d(TAG, "Cancel face enrollment requested for: " + mAuthRequestId); cancelEnrollment(mAuthRequestId); } } Loading
core/java/android/hardware/face/IFaceService.aidl +5 −4 Original line number Diff line number Diff line Loading @@ -76,15 +76,16 @@ interface IFaceService { void cancelAuthenticationFromService(int sensorId, IBinder token, String opPackageName, long requestId); // Start face enrollment void enroll(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures, in Surface previewSurface, boolean debugConsent); long enroll(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures, in Surface previewSurface, boolean debugConsent); // Start remote face enrollment void enrollRemotely(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, long enrollRemotely(int userId, IBinder token, in byte [] hardwareAuthToken, IFaceServiceReceiver receiver, String opPackageName, in int [] disabledFeatures); // Cancel enrollment in progress void cancelEnrollment(IBinder token); void cancelEnrollment(IBinder token, long requestId); // Removes the specified face enrollment for the specified userId. void remove(IBinder token, int faceId, int userId, IFaceServiceReceiver receiver, Loading
core/java/android/hardware/fingerprint/FingerprintManager.java +18 −12 Original line number Diff line number Diff line Loading @@ -183,9 +183,16 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } private class OnEnrollCancelListener implements OnCancelListener { private final long mAuthRequestId; private OnEnrollCancelListener(long id) { mAuthRequestId = id; } @Override public void onCancel() { cancelEnrollment(); Slog.d(TAG, "Cancel fingerprint enrollment requested for: " + mAuthRequestId); cancelEnrollment(mAuthRequestId); } } Loading Loading @@ -646,20 +653,19 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing throw new IllegalArgumentException("Must supply an enrollment callback"); } if (cancel != null) { if (cancel.isCanceled()) { if (cancel != null && cancel.isCanceled()) { Slog.w(TAG, "enrollment already canceled"); return; } else { cancel.setOnCancelListener(new OnEnrollCancelListener()); } } if (mService != null) { try { mEnrollmentCallback = callback; mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, mContext.getOpPackageName(), enrollReason); final long enrollId = mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, mContext.getOpPackageName(), enrollReason); if (cancel != null) { cancel.setOnCancelListener(new OnEnrollCancelListener(enrollId)); } } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or try Loading Loading @@ -1302,9 +1308,9 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing return allSensors.isEmpty() ? null : allSensors.get(0); } private void cancelEnrollment() { private void cancelEnrollment(long requestId) { if (mService != null) try { mService.cancelEnrollment(mToken); mService.cancelEnrollment(mToken, requestId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/hardware/fingerprint/IFingerprintService.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -84,11 +84,11 @@ interface IFingerprintService { void cancelAuthenticationFromService(int sensorId, IBinder token, String opPackageName, long requestId); // Start fingerprint enrollment void enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, long enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, String opPackageName, int enrollReason); // Cancel enrollment in progress void cancelEnrollment(IBinder token); void cancelEnrollment(IBinder token, long requestId); // Any errors resulting from this call will be returned to the listener void remove(IBinder token, int fingerId, int userId, IFingerprintServiceReceiver receiver, Loading
services/core/java/com/android/server/biometrics/sensors/BaseClientMonitor.java +4 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.biometrics.sensors; import static com.android.internal.annotations.VisibleForTesting.Visibility; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; Loading Loading @@ -48,7 +50,6 @@ public abstract class BaseClientMonitor extends LoggableMonitor * Interface that ClientMonitor holders should use to receive callbacks. */ public interface Callback { /** * Invoked when the ClientMonitor operation has been started (e.g. reached the head of * the queue and becomes the current operation). Loading Loading @@ -203,7 +204,8 @@ public abstract class BaseClientMonitor extends LoggableMonitor } /** Signals this operation has completed its lifecycle and should no longer be used. */ void destroy() { @VisibleForTesting(visibility = Visibility.PACKAGE) public void destroy() { mAlreadyDone = true; if (mToken != null) { try { Loading