diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/BiometricTestSessionImpl.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/BiometricTestSessionImpl.java index 13bbb7e8a7040..211d79c6a2636 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/BiometricTestSessionImpl.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/BiometricTestSessionImpl.java @@ -21,6 +21,8 @@ import static android.Manifest.permission.TEST_BIOMETRIC; import android.annotation.NonNull; import android.content.Context; import android.hardware.biometrics.ITestSession; +import android.hardware.biometrics.face.AuthenticationFrame; +import android.hardware.biometrics.face.BaseFrame; import android.hardware.face.Face; import android.hardware.face.IFaceServiceReceiver; import android.os.Binder; @@ -180,12 +182,21 @@ public class BiometricTestSessionImpl extends ITestSession.Stub { mSensor.getSessionForUser(userId).mHalSessionCallback.onAuthenticationFailed(); } + // TODO(b/174619156): replace with notifyAuthenticationFrame and notifyEnrollmentFrame. @Override - public void notifyAcquired(int userId, int acquireInfo) { + public void notifyAcquired(int userId, int acquireInfo) { Utils.checkPermission(mContext, TEST_BIOMETRIC); - mSensor.getSessionForUser(userId).mHalSessionCallback - .onAcquired((byte) acquireInfo, 0 /* vendorCode */); + BaseFrame data = new BaseFrame(); + data.acquiredInfo = (byte) acquireInfo; + + AuthenticationFrame authenticationFrame = new AuthenticationFrame(); + authenticationFrame.data = data; + + // TODO(b/174619156): Currently onAuthenticationFrame and onEnrollmentFrame are the same. + // This will need to call the correct callback once the onAcquired callback is removed. + mSensor.getSessionForUser(userId).mHalSessionCallback.onAuthenticationFrame( + authenticationFrame); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java index f09df1e1812e3..632cc4bb177a7 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java @@ -22,6 +22,7 @@ import android.content.Context; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.common.ICancellationSignal; +import android.hardware.biometrics.face.EnrollmentType; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.ISession; import android.hardware.face.Face; @@ -114,7 +115,8 @@ public class FaceEnrollClient extends EnrollClient { try { // TODO(b/172593978): Pass features. - mCancellationSignal = getFreshDaemon().enroll(mSequentialId, + // TODO(b/174619156): Handle accessibility enrollment. + mCancellationSignal = getFreshDaemon().enroll(mSequentialId, EnrollmentType.DEFAULT, HardwareAuthTokenUtils.toHardwareAuthToken(mHardwareAuthToken), mPreviewSurface); } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java index 82ad387ab9f21..b28713e613992 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java @@ -22,6 +22,8 @@ import android.content.Context; import android.content.pm.UserInfo; import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.ITestSession; +import android.hardware.biometrics.face.AuthenticationFrame; +import android.hardware.biometrics.face.EnrollmentFrame; import android.hardware.biometrics.face.Error; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.ISession; @@ -167,7 +169,8 @@ public class Sensor implements IBinder.DeathRecipient { } @Override - public void onAcquired(byte info, int vendorCode) { + public void onAuthenticationFrame(AuthenticationFrame frame) { + // TODO(b/174619156): propagate the frame to an AuthenticationClient mHandler.post(() -> { final BaseClientMonitor client = mScheduler.getCurrentClient(); if (!(client instanceof AcquisitionClient)) { @@ -177,7 +180,23 @@ public class Sensor implements IBinder.DeathRecipient { } final AcquisitionClient acquisitionClient = (AcquisitionClient) client; - acquisitionClient.onAcquired(info, vendorCode); + acquisitionClient.onAcquired(frame.data.acquiredInfo, frame.data.vendorCode); + }); + } + + @Override + public void onEnrollmentFrame(EnrollmentFrame frame) { + // TODO(b/174619156): propagate the frame to an EnrollmentClient + mHandler.post(() -> { + final BaseClientMonitor client = mScheduler.getCurrentClient(); + if (!(client instanceof AcquisitionClient)) { + Slog.e(mTag, "onAcquired for non-acquisition client: " + + Utils.getClientName(client)); + return; + } + + final AcquisitionClient acquisitionClient = (AcquisitionClient) client; + acquisitionClient.onAcquired(frame.data.acquiredInfo, frame.data.vendorCode); }); } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java index 34bf9bc63a647..dc1efa057e3b6 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java @@ -49,8 +49,8 @@ public class TestHal extends IFace.Stub { } @Override - public ICancellationSignal enroll(int cookie, HardwareAuthToken hat, - NativeHandle previewSurface) { + public ICancellationSignal enroll(int cookie, byte enrollmentType, + HardwareAuthToken hat, NativeHandle previewSurface) { return null; } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestSession.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestSession.java index 50483d93f92bb..189c726c31711 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestSession.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestSession.java @@ -50,7 +50,7 @@ public class TestSession extends ISession.Stub { } @Override - public ICancellationSignal enroll(int cookie, HardwareAuthToken hat, + public ICancellationSignal enroll(int cookie, byte enrollmentType, HardwareAuthToken hat, NativeHandle previewSurface) { return null; }