Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37c13357 authored by Kevin Chyn's avatar Kevin Chyn Committed by Android (Google) Code Review
Browse files

Merge changes I070a5416,I82d7ceac,I3f7695ef

* changes:
  11/n: Finish remainder of IFingerprint implementation
  10/n: Add remainder of functionality to FingerprintProvider
  9/n: Fix more biometric templating
parents 9a64686f 258534b4
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ public abstract class InternalCleanupClient<S extends BiometricAuthenticator.Ide
    }

    private final ArrayList<UserTemplate> mUnknownHALTemplates = new ArrayList<>();
    private final BiometricUtils mBiometricUtils;
    private final BiometricUtils<S> mBiometricUtils;
    private final Map<Integer, Long> mAuthenticatorIds;
    private final List<S> mEnrolledList;
    private ClientMonitor<T> mCurrentTask;
@@ -95,15 +95,15 @@ public abstract class InternalCleanupClient<S extends BiometricAuthenticator.Ide

    protected abstract InternalEnumerateClient<T> getEnumerateClient(Context context,
            LazyDaemon<T> lazyDaemon, IBinder token, int userId, String owner,
            List<S> enrolledList, BiometricUtils utils, int sensorId);
            List<S> enrolledList, BiometricUtils<S> utils, int sensorId);

    protected abstract RemovalClient<T> getRemovalClient(Context context, LazyDaemon<T> lazyDaemon,
            IBinder token, int biometricId, int userId, String owner, BiometricUtils utils,
            int sensorId, Map<Integer, Long> authenticatorIds);
    protected abstract RemovalClient<S, T> getRemovalClient(Context context,
            LazyDaemon<T> lazyDaemon, IBinder token, int biometricId, int userId, String owner,
            BiometricUtils<S> utils, int sensorId, Map<Integer, Long> authenticatorIds);

    protected InternalCleanupClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
            int userId, @NonNull String owner, int sensorId, int statsModality,
            @NonNull List<S> enrolledList, @NonNull BiometricUtils utils,
            @NonNull List<S> enrolledList, @NonNull BiometricUtils<S> utils,
            @NonNull Map<Integer, Long> authenticatorIds) {
        super(context, lazyDaemon, null /* token */, null /* ClientMonitorCallbackConverter */,
                userId, owner, 0 /* cookie */, sensorId, statsModality,
@@ -153,7 +153,7 @@ public abstract class InternalCleanupClient<S extends BiometricAuthenticator.Ide
                    + mCurrentTask.getClass().getSimpleName());
            return;
        }
        ((RemovalClient<T>) mCurrentTask).onRemoved(identifier, remaining);
        ((RemovalClient<S, T>) mCurrentTask).onRemoved(identifier, remaining);
    }

    @Override
+7 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.biometrics.sensors;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricsProtoEnums;
@@ -29,17 +30,18 @@ import java.util.Map;
/**
 * A class to keep track of the remove state for a given client.
 */
public abstract class RemovalClient<T> extends ClientMonitor<T> implements RemovalConsumer {
public abstract class RemovalClient<S extends BiometricAuthenticator.Identifier, T>
        extends ClientMonitor<T> implements RemovalConsumer {

    private static final String TAG = "Biometrics/RemovalClient";

    protected final int mBiometricId;
    private final BiometricUtils mBiometricUtils;
    private final BiometricUtils<S> mBiometricUtils;
    private final Map<Integer, Long> mAuthenticatorIds;

    public RemovalClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
            @NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
            int biometricId, int userId, @NonNull String owner, @NonNull BiometricUtils utils,
            int biometricId, int userId, @NonNull String owner, @NonNull BiometricUtils<S> utils,
            int sensorId, @NonNull Map<Integer, Long> authenticatorIds, int statsModality) {
        super(context, lazyDaemon, token, listener, userId, owner, 0 /* cookie */, sensorId,
                statsModality, BiometricsProtoEnums.ACTION_REMOVE,
@@ -63,8 +65,8 @@ public abstract class RemovalClient<T> extends ClientMonitor<T> implements Remov
    }

    @Override
    public void onRemoved(BiometricAuthenticator.Identifier identifier, int remaining) {
        if (identifier.getBiometricId() != 0) {
    public void onRemoved(@Nullable BiometricAuthenticator.Identifier identifier, int remaining) {
        if (identifier != null) {
            mBiometricUtils.removeBiometricForUser(getContext(), getTargetUserId(),
                    identifier.getBiometricId());
        }
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.biometrics.sensors;

import android.annotation.Nullable;
import android.hardware.biometrics.BiometricAuthenticator;

/**
@@ -28,5 +29,5 @@ public interface RemovalConsumer {
     * @param remaining number of templates that still need to be removed before the operation in
     *                  the HAL is complete (e.g. when removing all templates).
     */
    void onRemoved(BiometricAuthenticator.Identifier identifier, int remaining);
    void onRemoved(@Nullable BiometricAuthenticator.Identifier identifier, int remaining);
}
+1 −2
Original line number Diff line number Diff line
@@ -219,8 +219,7 @@ class Face10 implements IHwBinder.DeathRecipient {
                        removalConsumer.onRemoved(face, remaining);
                    }
                } else {
                    final Face face = new Face("", 0 /* identifier */, deviceId);
                    removalConsumer.onRemoved(face, 0 /* remaining */);
                    removalConsumer.onRemoved(null, 0 /* remaining */);
                }

                Settings.Secure.putIntForUser(mContext.getContentResolver(),
+4 −3
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.hardware.biometrics.face.V1_0.Status;
import android.hardware.face.Face;
import android.hardware.face.FaceManager;
import android.os.IBinder;
import android.os.NativeHandle;
@@ -53,9 +54,9 @@ public class FaceEnrollClient extends EnrollClient<IBiometricsFace> {

    FaceEnrollClient(@NonNull Context context, @NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
            @NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
            @NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils,
            @NonNull int[] disabledFeatures, int timeoutSec, @Nullable NativeHandle surfaceHandle,
            int sensorId) {
            @NonNull byte[] hardwareAuthToken, @NonNull String owner,
            @NonNull BiometricUtils<Face> utils, @NonNull int[] disabledFeatures, int timeoutSec,
            @Nullable NativeHandle surfaceHandle, int sensorId) {
        super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, owner, utils,
                timeoutSec, BiometricsProtoEnums.MODALITY_FACE, sensorId,
                false /* shouldVibrate */);
Loading