diff --git a/services/core/java/com/android/server/biometrics/sensors/face/FaceUserState.java b/services/core/java/com/android/server/biometrics/sensors/face/FaceUserState.java index 42c7d16951d70..3fdd279486560 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/FaceUserState.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/FaceUserState.java @@ -17,7 +17,6 @@ package com.android.server.biometrics.sensors.face; import android.content.Context; -import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.face.Face; import android.util.AtomicFile; import android.util.Slog; @@ -41,7 +40,7 @@ import java.util.ArrayList; * Class managing the set of faces per user across device reboots. * @hide */ -public class FaceUserState extends BiometricUserState { +public class FaceUserState extends BiometricUserState { private static final String TAG = "FaceState"; private static final String FACE_FILE = "settings_face.xml"; @@ -72,19 +71,9 @@ public class FaceUserState extends BiometricUserState { } @Override - public void addBiometric(BiometricAuthenticator.Identifier identifier) { - if (identifier instanceof Face) { - super.addBiometric(identifier); - } else { - Slog.w(TAG, "Attempted to add non-face identifier"); - } - } - - @Override - protected ArrayList getCopy(ArrayList array) { - ArrayList result = new ArrayList<>(array.size()); - for (int i = 0; i < array.size(); i++) { - Face f = (Face) array.get(i); + protected ArrayList getCopy(ArrayList array) { + final ArrayList result = new ArrayList<>(); + for (Face f : array) { result.add(new Face(f.getName(), f.getBiometricId(), f.getDeviceId())); } return result; diff --git a/services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java b/services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java index 0197028cfd6ed..f47b22839e709 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/FaceUtils.java @@ -30,7 +30,7 @@ import java.util.List; /** * Utility class for dealing with faces and face settings. */ -public class FaceUtils implements BiometricUtils { +public class FaceUtils implements BiometricUtils { private static final Object sInstanceLock = new Object(); private static FaceUtils sInstance; @@ -56,9 +56,8 @@ public class FaceUtils implements BiometricUtils { } @Override - public void addBiometricForUser(Context ctx, int userId, - BiometricAuthenticator.Identifier identifier) { - getStateForUser(ctx, userId).addBiometric(identifier); + public void addBiometricForUser(Context ctx, int userId, Face face) { + getStateForUser(ctx, userId).addBiometric(face); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUserState.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUserState.java index 56312bcb16e4f..f32d28c4d7ee4 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUserState.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUserState.java @@ -17,7 +17,6 @@ package com.android.server.biometrics.sensors.fingerprint; import android.content.Context; -import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.fingerprint.Fingerprint; import android.util.AtomicFile; import android.util.Slog; @@ -40,7 +39,7 @@ import java.util.ArrayList; * Class managing the set of fingerprint per user across device reboots. * @hide */ -public class FingerprintUserState extends BiometricUserState { +public class FingerprintUserState extends BiometricUserState { private static final String TAG = "FingerprintState"; private static final String FINGERPRINT_FILE = "settings_fingerprint.xml"; @@ -72,19 +71,9 @@ public class FingerprintUserState extends BiometricUserState { } @Override - public void addBiometric(BiometricAuthenticator.Identifier identifier) { - if (identifier instanceof Fingerprint) { - super.addBiometric(identifier); - } else { - Slog.w(TAG, "Attempted to add non-fingerprint identifier"); - } - } - - @Override - protected ArrayList getCopy(ArrayList array) { - ArrayList result = new ArrayList<>(); - for (int i = 0; i < array.size(); i++) { - Fingerprint fp = (Fingerprint) array.get(i); + protected ArrayList getCopy(ArrayList array) { + final ArrayList result = new ArrayList<>(); + for (Fingerprint fp : array) { result.add(new Fingerprint(fp.getName(), fp.getGroupId(), fp.getBiometricId(), fp.getDeviceId())); } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java index f0bfe12db32a3..3bf3a5b3ea37d 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java @@ -30,7 +30,7 @@ import java.util.List; /** * Utility class for dealing with fingerprints and fingerprint settings. */ -public class FingerprintUtils implements BiometricUtils { +public class FingerprintUtils implements BiometricUtils { private static final Object sInstanceLock = new Object(); private static FingerprintUtils sInstance; @@ -56,9 +56,8 @@ public class FingerprintUtils implements BiometricUtils { } @Override - public void addBiometricForUser(Context context, int userId, - BiometricAuthenticator.Identifier identifier) { - getStateForUser(context, userId).addBiometric(identifier); + public void addBiometricForUser(Context context, int userId, Fingerprint fingerprint) { + getStateForUser(context, userId).addBiometric(fingerprint); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java index 33f5418ee6200..c96bef167e8bb 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.BiometricFingerprintConstants; +import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.fingerprint.ISession; import android.hardware.fingerprint.IUdfpsOverlayController; @@ -48,11 +49,12 @@ public class FingerprintEnrollClient extends EnrollClient implements U public FingerprintEnrollClient(@NonNull Context context, @NonNull LazyDaemon lazyDaemon, @NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId, - @NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils, - int statsModality, int sensorId, + @NonNull byte[] hardwareAuthToken, @NonNull String owner, + @NonNull FingerprintUtils utils, int sensorId, @Nullable IUdfpsOverlayController udfpsOvelayController, int maxTemplatesPerUser) { super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, owner, utils, - 0 /* timeoutSec */, statsModality, sensorId, true /* shouldVibrate */); + 0 /* timeoutSec */, BiometricsProtoEnums.MODALITY_FINGERPRINT, sensorId, + true /* shouldVibrate */); mUdfpsOverlayController = udfpsOvelayController; mMaxTemplatesPerUser = maxTemplatesPerUser; } @@ -83,7 +85,7 @@ public class FingerprintEnrollClient extends EnrollClient implements U protected void startHalOperation() { UdfpsHelper.showUdfpsOverlay(getSensorId(), mUdfpsOverlayController); try { - getFreshDaemon().enroll(mSequentialId, + mCancellationSignal = getFreshDaemon().enroll(mSequentialId, HardwareAuthTokenUtils.toHardwareAuthToken(mHardwareAuthToken)); } catch (RemoteException e) { Slog.e(TAG, "Remote exception when requesting enroll", e); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java index 417f4a118d661..bac83b9e21ef5 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java @@ -285,8 +285,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi final FingerprintEnrollClient client = new FingerprintEnrollClient(mContext, mSensors.get(sensorId).getLazySession(), token, new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken, - opPackageName, FingerprintUtils.getInstance(), - BiometricsProtoEnums.MODALITY_FINGERPRINT, sensorId, + opPackageName, FingerprintUtils.getInstance(), sensorId, mUdfpsOverlayController, maxTemplatesPerUser); scheduleForSensor(sensorId, client, new ClientMonitor.Callback() { @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintRemovalClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintRemovalClient.java index 248050d1a789c..df063dc34017d 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintRemovalClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintRemovalClient.java @@ -24,9 +24,9 @@ import android.os.IBinder; import android.os.RemoteException; import android.util.Slog; -import com.android.server.biometrics.sensors.BiometricUtils; import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter; import com.android.server.biometrics.sensors.RemovalClient; +import com.android.server.biometrics.sensors.fingerprint.FingerprintUtils; import java.util.Map; @@ -40,7 +40,7 @@ public class FingerprintRemovalClient extends RemovalClient { public FingerprintRemovalClient(@NonNull Context context, @NonNull LazyDaemon lazyDaemon, @NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int biometricId, int userId, - @NonNull String owner, @NonNull BiometricUtils utils, int sensorId, + @NonNull String owner, @NonNull FingerprintUtils utils, int sensorId, @NonNull Map authenticatorIds) { super(context, lazyDaemon, token, listener, biometricId, userId, owner, utils, sensorId, authenticatorIds, BiometricsProtoEnums.MODALITY_FINGERPRINT);