Remove useless type.

Replace with standard jvm type.

Bug: 204585936
Test: Builds
Change-Id: Icd0be731236d417d5c3675982c6ee0a035f4240f
This commit is contained in:
Joe Bolinger
2022-01-19 12:11:33 -08:00
parent 26cdbb14e8
commit 82a7c8e59b
67 changed files with 186 additions and 105 deletions

View File

@@ -29,6 +29,8 @@ import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Slog;
import java.util.function.Supplier;
/**
* Abstract {@link HalClientMonitor} subclass that operations eligible/interested in acquisition
* messages should extend.
@@ -57,7 +59,7 @@ public abstract class AcquisitionClient<T> extends HalClientMonitor<T> implement
*/
protected abstract void stopHalOperation();
public AcquisitionClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public AcquisitionClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int cookie, int sensorId, boolean shouldVibrate,
int statsModality, int statsAction, int statsClient) {

View File

@@ -42,6 +42,7 @@ import com.android.server.biometrics.Utils;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
* A class to keep track of the authentication state for a given client.
@@ -105,7 +106,7 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T>
*/
public abstract boolean wasUserDetected();
public AuthenticationClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public AuthenticationClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int targetUserId, long operationId, boolean restricted, @NonNull String owner,
int cookie, boolean requireConfirmation, int sensorId, boolean isStrongBiometric,

View File

@@ -29,6 +29,7 @@ import android.util.Slog;
import com.android.server.biometrics.BiometricsProto;
import java.util.Arrays;
import java.util.function.Supplier;
/**
* A class to keep track of the enrollment state for a given client.
@@ -49,7 +50,7 @@ public abstract class EnrollClient<T> extends AcquisitionClient<T> implements En
*/
protected abstract boolean hasReachedEnrollmentLimit();
public EnrollClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public EnrollClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils,
int timeoutSec, int statsModality, int sensorId, boolean shouldVibrate) {

View File

@@ -25,11 +25,13 @@ import android.util.Slog;
import com.android.server.biometrics.BiometricsProto;
import java.util.function.Supplier;
public abstract class GenerateChallengeClient<T> extends HalClientMonitor<T> {
private static final String TAG = "GenerateChallengeClient";
public GenerateChallengeClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public GenerateChallengeClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int userId, @NonNull String owner, int sensorId) {
super(context, lazyDaemon, token, listener, userId, owner, 0 /* cookie */, sensorId,

View File

@@ -22,20 +22,13 @@ import android.content.Context;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.os.IBinder;
import java.util.function.Supplier;
/**
* Abstract {@link BaseClientMonitor} implementation that supports HAL operations.
* @param <T> HAL template
*/
public abstract class HalClientMonitor<T> extends BaseClientMonitor {
/**
* Interface that allows ClientMonitor subclasses to retrieve a fresh instance to the HAL.
*/
public interface LazyDaemon<T> {
/**
* @return A fresh instance to the biometric HAL
*/
T getDaemon();
}
/**
* Starts the HAL operation specific to the ClientMonitor subclass.
@@ -50,7 +43,7 @@ public abstract class HalClientMonitor<T> extends BaseClientMonitor {
public abstract void unableToStart();
@NonNull
protected final LazyDaemon<T> mLazyDaemon;
protected final Supplier<T> mLazyDaemon;
/**
* @param context system_server context
@@ -65,7 +58,7 @@ public abstract class HalClientMonitor<T> extends BaseClientMonitor {
* @param statsAction One of {@link BiometricsProtoEnums} ACTION_* constants
* @param statsClient One of {@link BiometricsProtoEnums} CLIENT_* constants
*/
public HalClientMonitor(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public HalClientMonitor(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@Nullable IBinder token, @Nullable ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int cookie, int sensorId, int statsModality, int statsAction,
int statsClient) {
@@ -76,6 +69,6 @@ public abstract class HalClientMonitor<T> extends BaseClientMonitor {
@Nullable
public T getFreshDaemon() {
return mLazyDaemon.getDaemon();
return mLazyDaemon.get();
}
}

View File

@@ -28,6 +28,7 @@ import com.android.server.biometrics.BiometricsProto;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* Wraps {@link InternalEnumerateClient} and {@link RemovalClient}. Keeps track of all the
@@ -99,14 +100,14 @@ public abstract class InternalCleanupClient<S extends BiometricAuthenticator.Ide
};
protected abstract InternalEnumerateClient<T> getEnumerateClient(Context context,
LazyDaemon<T> lazyDaemon, IBinder token, int userId, String owner,
Supplier<T> lazyDaemon, IBinder token, int userId, String owner,
List<S> enrolledList, BiometricUtils<S> utils, int sensorId);
protected abstract RemovalClient<S, T> getRemovalClient(Context context,
LazyDaemon<T> lazyDaemon, IBinder token, int biometricId, int userId, String owner,
Supplier<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,
protected InternalCleanupClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
int userId, @NonNull String owner, int sensorId, int statsModality,
@NonNull List<S> enrolledList, @NonNull BiometricUtils<S> utils,
@NonNull Map<Integer, Long> authenticatorIds) {

View File

@@ -27,6 +27,7 @@ import com.android.server.biometrics.BiometricsProto;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
* Internal class to help clean up unknown templates in the HAL and Framework
@@ -43,7 +44,7 @@ public abstract class InternalEnumerateClient<T> extends HalClientMonitor<T>
// List of templates to remove from the HAL
private List<BiometricAuthenticator.Identifier> mUnknownHALTemplates = new ArrayList<>();
protected InternalEnumerateClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
protected InternalEnumerateClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, int userId, @NonNull String owner,
@NonNull List<? extends BiometricAuthenticator.Identifier> enrolledList,
@NonNull BiometricUtils utils, int sensorId, int statsModality) {

View File

@@ -27,6 +27,7 @@ import android.util.Slog;
import com.android.server.biometrics.BiometricsProto;
import java.util.Map;
import java.util.function.Supplier;
/**
* ClientMonitor subclass for requesting authenticatorId invalidation. See
@@ -40,7 +41,7 @@ public abstract class InvalidationClient<S extends BiometricAuthenticator.Identi
@NonNull private final Map<Integer, Long> mAuthenticatorIds;
@NonNull private final IInvalidationCallback mInvalidationCallback;
public InvalidationClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public InvalidationClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
int userId, int sensorId, @NonNull Map<Integer, Long> authenticatorIds,
@NonNull IInvalidationCallback callback) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId,

View File

@@ -27,6 +27,7 @@ import android.util.Slog;
import com.android.server.biometrics.BiometricsProto;
import java.util.Map;
import java.util.function.Supplier;
/**
* A class to keep track of the remove state for a given client.
@@ -40,7 +41,7 @@ public abstract class RemovalClient<S extends BiometricAuthenticator.Identifier,
private final Map<Integer, Long> mAuthenticatorIds;
private final boolean mHasEnrollmentsBeforeStarting;
public RemovalClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public RemovalClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int userId, @NonNull String owner, @NonNull BiometricUtils<S> utils, int sensorId,
@NonNull Map<Integer, Long> authenticatorIds, int statsModality) {

View File

@@ -23,9 +23,11 @@ import android.os.IBinder;
import com.android.server.biometrics.BiometricsProto;
import java.util.function.Supplier;
public abstract class RevokeChallengeClient<T> extends HalClientMonitor<T> {
public RevokeChallengeClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public RevokeChallengeClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@NonNull IBinder token, int userId, @NonNull String owner, int sensorId) {
super(context, lazyDaemon, token, null /* listener */, userId, owner,
0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,

View File

@@ -25,6 +25,8 @@ import android.os.IBinder;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.biometrics.BiometricsProto;
import java.util.function.Supplier;
/**
* Abstract class for starting a new user.
* @param <T> Interface to request a new user.
@@ -43,7 +45,7 @@ public abstract class StartUserClient<T, U> extends HalClientMonitor<T> {
@NonNull @VisibleForTesting
protected final UserStartedCallback<U> mUserStartedCallback;
public StartUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public StartUserClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@Nullable IBinder token, int userId, int sensorId,
@NonNull UserStartedCallback<U> callback) {
super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(),

View File

@@ -25,6 +25,8 @@ import android.os.IBinder;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.biometrics.BiometricsProto;
import java.util.function.Supplier;
/**
* Abstract class for stopping a user.
* @param <T> Interface for stopping the user.
@@ -43,7 +45,7 @@ public abstract class StopUserClient<T> extends HalClientMonitor<T> {
getCallback().onClientFinished(this, true /* success */);
}
public StopUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon,
public StopUserClient(@NonNull Context context, @NonNull Supplier<T> lazyDaemon,
@Nullable IBinder token, int userId, int sensorId,
@NonNull UserStoppedCallback callback) {
super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(),

View File

@@ -48,6 +48,7 @@ import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.face.UsageStats;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Face-specific authentication client for the {@link IFace} AIDL HAL interface.
@@ -69,7 +70,7 @@ class FaceAuthenticationClient extends AuthenticationClient<ISession> implements
@FaceManager.FaceAcquired private int mLastAcquire = FaceManager.FACE_ACQUIRED_UNKNOWN;
FaceAuthenticationClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon,
@NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int targetUserId, long operationId,
boolean restricted, String owner, int cookie, boolean requireConfirmation, int sensorId,

View File

@@ -34,6 +34,8 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.DetectionConsumer;
import java.util.function.Supplier;
/**
* Performs face detection without exposing any matching information (e.g. accept/reject have the
* same haptic, lockout counter is not increased).
@@ -46,7 +48,7 @@ public class FaceDetectClient extends AcquisitionClient<ISession> implements Det
@Nullable private ICancellationSignal mCancellationSignal;
@Nullable private SensorPrivacyManager mSensorPrivacyManager;
public FaceDetectClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
public FaceDetectClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId, boolean isStrongBiometric, int statsClient) {

View File

@@ -51,6 +51,7 @@ import com.android.server.biometrics.sensors.face.FaceUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
* Face-specific enroll client for the {@link IFace} AIDL HAL interface.
@@ -82,7 +83,7 @@ public class FaceEnrollClient extends EnrollClient<ISession> {
}
};
FaceEnrollClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FaceEnrollClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, @NonNull String opPackageName, long requestId,
@NonNull BiometricUtils<Face> utils, @NonNull int[] disabledFeatures, int timeoutSec,

View File

@@ -27,6 +27,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.GenerateChallengeClient;
import java.util.function.Supplier;
/**
* Face-specific generateChallenge client for the {@link IFace} AIDL HAL interface.
*/
@@ -34,7 +36,7 @@ public class FaceGenerateChallengeClient extends GenerateChallengeClient<ISessio
private static final String TAG = "FaceGenerateChallengeClient";
FaceGenerateChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int sensorId) {
super(context, lazyDaemon, token, listener, userId, owner, sensorId);

View File

@@ -28,6 +28,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.Map;
import java.util.function.Supplier;
class FaceGetAuthenticatorIdClient extends HalClientMonitor<ISession> {
@@ -35,7 +36,7 @@ class FaceGetAuthenticatorIdClient extends HalClientMonitor<ISession> {
private final Map<Integer, Long> mAuthenticatorIds;
FaceGetAuthenticatorIdClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FaceGetAuthenticatorIdClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
int userId, @NonNull String opPackageName, int sensorId,
Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, opPackageName,

View File

@@ -36,6 +36,7 @@ import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;
/**
* Face-specific get feature client for the {@link IFace} AIDL HAL interface.
@@ -46,7 +47,7 @@ public class FaceGetFeatureClient extends HalClientMonitor<ISession> implements
private final int mUserId;
FaceGetFeatureClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FaceGetFeatureClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, @Nullable ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId) {
super(context, lazyDaemon, token, listener, userId, owner, 0 /* cookie */, sensorId,

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.RemovalClient;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* Face-specific internal cleanup client for the {@link IFace} AIDL HAL interface.
@@ -38,7 +39,7 @@ import java.util.Map;
class FaceInternalCleanupClient extends InternalCleanupClient<Face, ISession> {
FaceInternalCleanupClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, @NonNull String owner,
@NonNull Supplier<ISession> lazyDaemon, int userId, @NonNull String owner,
int sensorId, @NonNull List<Face> enrolledList, @NonNull BiometricUtils<Face> utils,
@NonNull Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, userId, owner, sensorId, BiometricsProtoEnums.MODALITY_FACE,
@@ -47,7 +48,7 @@ class FaceInternalCleanupClient extends InternalCleanupClient<Face, ISession> {
@Override
protected InternalEnumerateClient<ISession> getEnumerateClient(Context context,
LazyDaemon<ISession> lazyDaemon, IBinder token, int userId, String owner,
Supplier<ISession> lazyDaemon, IBinder token, int userId, String owner,
List<Face> enrolledList, BiometricUtils<Face> utils, int sensorId) {
return new FaceInternalEnumerateClient(context, lazyDaemon, token, userId, owner,
enrolledList, utils, sensorId);
@@ -55,7 +56,7 @@ class FaceInternalCleanupClient extends InternalCleanupClient<Face, ISession> {
@Override
protected RemovalClient<Face, ISession> getRemovalClient(Context context,
LazyDaemon<ISession> lazyDaemon, IBinder token,
Supplier<ISession> lazyDaemon, IBinder token,
int biometricId, int userId, String owner, BiometricUtils<Face> utils, int sensorId,
Map<Integer, Long> authenticatorIds) {
// Internal remove does not need to send results to anyone. Cleanup (enumerate + remove)

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.BiometricUtils;
import com.android.server.biometrics.sensors.InternalEnumerateClient;
import java.util.List;
import java.util.function.Supplier;
/**
* Face-specific internal enumerate client for the {@link IFace} AIDL HAL interface.
@@ -38,7 +39,7 @@ class FaceInternalEnumerateClient extends InternalEnumerateClient<ISession> {
private static final String TAG = "FaceInternalEnumerateClient";
FaceInternalEnumerateClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull String owner, @NonNull List<Face> enrolledList,
@NonNull BiometricUtils<Face> utils, int sensorId) {
super(context, lazyDaemon, token, userId, owner, enrolledList, utils, sensorId,

View File

@@ -27,12 +27,13 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.InvalidationClient;
import java.util.Map;
import java.util.function.Supplier;
public class FaceInvalidationClient extends InvalidationClient<Face, ISession> {
private static final String TAG = "FaceInvalidationClient";
public FaceInvalidationClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, int sensorId,
@NonNull Supplier<ISession> lazyDaemon, int userId, int sensorId,
@NonNull Map<Integer, Long> authenticatorIds, @NonNull IInvalidationCallback callback) {
super(context, lazyDaemon, userId, sensorId, authenticatorIds, callback);
}

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.RemovalClient;
import java.util.Map;
import java.util.function.Supplier;
/**
* Face-specific removal client for the {@link IFace} AIDL HAL interface.
@@ -40,7 +41,7 @@ class FaceRemovalClient extends RemovalClient<Face, ISession> {
final int[] mBiometricIds;
FaceRemovalClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FaceRemovalClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int[] biometricIds, int userId, @NonNull String owner,
@NonNull BiometricUtils<Face> utils, int sensorId,

View File

@@ -34,6 +34,8 @@ import com.android.server.biometrics.sensors.LockoutCache;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import java.util.function.Supplier;
/**
* Face-specific resetLockout client for the {@link IFace} AIDL HAL interface.
* Updates the framework's lockout cache and notifies clients such as Keyguard when lockout is
@@ -48,7 +50,7 @@ public class FaceResetLockoutClient extends HalClientMonitor<ISession> implement
private final LockoutResetDispatcher mLockoutResetDispatcher;
FaceResetLockoutClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, String owner, int sensorId,
@NonNull Supplier<ISession> lazyDaemon, int userId, String owner, int sensorId,
@NonNull byte[] hardwareAuthToken, @NonNull LockoutCache lockoutTracker,
@NonNull LockoutResetDispatcher lockoutResetDispatcher) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner,

View File

@@ -26,6 +26,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.RevokeChallengeClient;
import java.util.function.Supplier;
/**
* Face-specific revokeChallenge client for the {@link IFace} AIDL HAL interface.
*/
@@ -36,7 +38,7 @@ public class FaceRevokeChallengeClient extends RevokeChallengeClient<ISession> {
private final long mChallenge;
FaceRevokeChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token,
int userId, @NonNull String owner, int sensorId, long challenge) {
super(context, lazyDaemon, token, userId, owner, sensorId);
mChallenge = challenge;

View File

@@ -33,6 +33,8 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.ErrorConsumer;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.function.Supplier;
/**
* Face-specific get feature client for the {@link IFace} AIDL HAL interface.
*/
@@ -44,7 +46,7 @@ public class FaceSetFeatureClient extends HalClientMonitor<ISession> implements
private final boolean mEnabled;
private final HardwareAuthToken mHardwareAuthToken;
FaceSetFeatureClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FaceSetFeatureClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId, int feature, boolean enabled,
byte[] hardwareAuthToken) {

View File

@@ -30,12 +30,14 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.StartUserClient;
import java.util.function.Supplier;
public class FaceStartUserClient extends StartUserClient<IFace, ISession> {
private static final String TAG = "FaceStartUserClient";
@NonNull private final ISessionCallback mSessionCallback;
public FaceStartUserClient(@NonNull Context context, @NonNull LazyDaemon<IFace> lazyDaemon,
public FaceStartUserClient(@NonNull Context context, @NonNull Supplier<IFace> lazyDaemon,
@Nullable IBinder token, int userId, int sensorId,
@NonNull ISessionCallback sessionCallback,
@NonNull UserStartedCallback<ISession> callback) {

View File

@@ -27,10 +27,12 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.StopUserClient;
import java.util.function.Supplier;
public class FaceStopUserClient extends StopUserClient<ISession> {
private static final String TAG = "FaceStopUserClient";
public FaceStopUserClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
public FaceStopUserClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@Nullable IBinder token, int userId, int sensorId,
@NonNull UserStoppedCallback callback) {
super(context, lazyDaemon, token, userId, sensorId, callback);

View File

@@ -53,7 +53,6 @@ import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.BiometricScheduler;
import com.android.server.biometrics.sensors.EnumerateConsumer;
import com.android.server.biometrics.sensors.ErrorConsumer;
import com.android.server.biometrics.sensors.HalClientMonitor;
import com.android.server.biometrics.sensors.Interruptable;
import com.android.server.biometrics.sensors.LockoutCache;
import com.android.server.biometrics.sensors.LockoutConsumer;
@@ -67,6 +66,7 @@ import com.android.server.biometrics.sensors.face.FaceUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;
/**
* Maintains the state of a single sensor within an instance of the {@link IFace} HAL.
@@ -84,7 +84,7 @@ public class Sensor {
@NonNull private final UserAwareBiometricScheduler mScheduler;
@NonNull private final LockoutCache mLockoutCache;
@NonNull private final Map<Integer, Long> mAuthenticatorIds;
@NonNull private final HalClientMonitor.LazyDaemon<ISession> mLazySession;
@NonNull private final Supplier<ISession> mLazySession;
@Nullable private Session mCurrentSession;
static class Session {
@@ -545,7 +545,7 @@ public class Sensor {
mLazySession = () -> mCurrentSession != null ? mCurrentSession.mSession : null;
}
@NonNull HalClientMonitor.LazyDaemon<ISession> getLazySession() {
@NonNull Supplier<ISession> getLazySession() {
return mLazySession;
}

View File

@@ -64,7 +64,6 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.EnumerateConsumer;
import com.android.server.biometrics.sensors.ErrorConsumer;
import com.android.server.biometrics.sensors.HalClientMonitor;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
@@ -89,6 +88,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Supplier;
/**
* Supports a single instance of the {@link android.hardware.biometrics.face.V1_0} or its extended
@@ -111,7 +111,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider {
@NonNull private final Context mContext;
@NonNull private final BiometricScheduler mScheduler;
@NonNull private final Handler mHandler;
@NonNull private final HalClientMonitor.LazyDaemon<IBiometricsFace> mLazyDaemon;
@NonNull private final Supplier<IBiometricsFace> mLazyDaemon;
@NonNull private final LockoutHalImpl mLockoutTracker;
@NonNull private final UsageStats mUsageStats;
@NonNull private final Map<Integer, Long> mAuthenticatorIds;

View File

@@ -41,6 +41,7 @@ import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.face.UsageStats;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Face-specific authentication client supporting the {@link android.hardware.biometrics.face.V1_0}
@@ -61,7 +62,7 @@ class FaceAuthenticationClient extends AuthenticationClient<IBiometricsFace> {
private SensorPrivacyManager mSensorPrivacyManager;
FaceAuthenticationClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
@NonNull Supplier<IBiometricsFace> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int targetUserId, long operationId,
boolean restricted, String owner, int cookie, boolean requireConfirmation, int sensorId,

View File

@@ -40,6 +40,7 @@ import com.android.server.biometrics.sensors.EnrollClient;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.function.Supplier;
/**
* Face-specific enroll client supporting the {@link android.hardware.biometrics.face.V1_0} HIDL
@@ -53,7 +54,7 @@ public class FaceEnrollClient extends EnrollClient<IBiometricsFace> {
@NonNull private final int[] mEnrollIgnoreList;
@NonNull private final int[] mEnrollIgnoreListVendor;
FaceEnrollClient(@NonNull Context context, @NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
FaceEnrollClient(@NonNull Context context, @NonNull Supplier<IBiometricsFace> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, @NonNull String owner, long requestId,
@NonNull BiometricUtils<Face> utils, @NonNull int[] disabledFeatures, int timeoutSec,

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.GenerateChallengeClient;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
* Face-specific generateChallenge client supporting the
@@ -48,7 +49,7 @@ public class FaceGenerateChallengeClient extends GenerateChallengeClient<IBiomet
private Long mChallengeResult;
FaceGenerateChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFace> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int sensorId, long now) {
super(context, lazyDaemon, token, listener, userId, owner, sensorId);

View File

@@ -32,6 +32,8 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.function.Supplier;
/**
* Face-specific getFeature client supporting the {@link android.hardware.biometrics.face.V1_0}
* HIDL interface.
@@ -44,7 +46,7 @@ public class FaceGetFeatureClient extends HalClientMonitor<IBiometricsFace> {
private final int mFaceId;
private boolean mValue;
FaceGetFeatureClient(@NonNull Context context, @NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
FaceGetFeatureClient(@NonNull Context context, @NonNull Supplier<IBiometricsFace> lazyDaemon,
@NonNull IBinder token, @Nullable ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId, int feature, int faceId) {
super(context, lazyDaemon, token, listener, userId, owner, 0 /* cookie */, sensorId,

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.RemovalClient;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* Face-specific internal cleanup client supporting the
@@ -38,7 +39,7 @@ import java.util.Map;
class FaceInternalCleanupClient extends InternalCleanupClient<Face, IBiometricsFace> {
FaceInternalCleanupClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, int userId, @NonNull String owner,
@NonNull Supplier<IBiometricsFace> lazyDaemon, int userId, @NonNull String owner,
int sensorId, @NonNull List<Face> enrolledList, @NonNull BiometricUtils<Face> utils,
@NonNull Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, userId, owner, sensorId, BiometricsProtoEnums.MODALITY_FACE,
@@ -47,7 +48,7 @@ class FaceInternalCleanupClient extends InternalCleanupClient<Face, IBiometricsF
@Override
protected InternalEnumerateClient<IBiometricsFace> getEnumerateClient(Context context,
LazyDaemon<IBiometricsFace> lazyDaemon, IBinder token, int userId, String owner,
Supplier<IBiometricsFace> lazyDaemon, IBinder token, int userId, String owner,
List<Face> enrolledList, BiometricUtils<Face> utils, int sensorId) {
return new FaceInternalEnumerateClient(context, lazyDaemon, token, userId, owner,
enrolledList, utils, sensorId);
@@ -55,7 +56,7 @@ class FaceInternalCleanupClient extends InternalCleanupClient<Face, IBiometricsF
@Override
protected RemovalClient<Face, IBiometricsFace> getRemovalClient(Context context,
LazyDaemon<IBiometricsFace> lazyDaemon, IBinder token,
Supplier<IBiometricsFace> lazyDaemon, IBinder token,
int biometricId, int userId, String owner, BiometricUtils<Face> utils, int sensorId,
Map<Integer, Long> authenticatorIds) {
// Internal remove does not need to send results to anyone. Cleanup (enumerate + remove)

View File

@@ -29,6 +29,7 @@ import com.android.server.biometrics.sensors.BiometricUtils;
import com.android.server.biometrics.sensors.InternalEnumerateClient;
import java.util.List;
import java.util.function.Supplier;
/**
* Face-specific internal enumerate client supporting the
@@ -38,7 +39,7 @@ class FaceInternalEnumerateClient extends InternalEnumerateClient<IBiometricsFac
private static final String TAG = "FaceInternalEnumerateClient";
FaceInternalEnumerateClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull Supplier<IBiometricsFace> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull String owner, @NonNull List<Face> enrolledList,
@NonNull BiometricUtils<Face> utils, int sensorId) {
super(context, lazyDaemon, token, userId, owner, enrolledList, utils, sensorId,

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.RemovalClient;
import java.util.Map;
import java.util.function.Supplier;
/**
* Face-specific removal client supporting the {@link android.hardware.biometrics.face.V1_0}
@@ -40,7 +41,7 @@ class FaceRemovalClient extends RemovalClient<Face, IBiometricsFace> {
private final int mBiometricId;
FaceRemovalClient(@NonNull Context context, @NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
FaceRemovalClient(@NonNull Context context, @NonNull Supplier<IBiometricsFace> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener,
int biometricId, int userId, @NonNull String owner, @NonNull BiometricUtils<Face> utils,
int sensorId, @NonNull Map<Integer, Long> authenticatorIds) {

View File

@@ -28,6 +28,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Face-specific resetLockout client supporting the {@link android.hardware.biometrics.face.V1_0}
@@ -40,7 +41,7 @@ public class FaceResetLockoutClient extends HalClientMonitor<IBiometricsFace> {
private final ArrayList<Byte> mHardwareAuthToken;
FaceResetLockoutClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, int userId, String owner, int sensorId,
@NonNull Supplier<IBiometricsFace> lazyDaemon, int userId, String owner, int sensorId,
@NonNull byte[] hardwareAuthToken) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner,
0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN,

View File

@@ -25,6 +25,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.RevokeChallengeClient;
import java.util.function.Supplier;
/**
* Face-specific revokeChallenge client supporting the {@link android.hardware.biometrics.face.V1_0}
* HIDL interface.
@@ -34,7 +36,7 @@ public class FaceRevokeChallengeClient extends RevokeChallengeClient<IBiometrics
private static final String TAG = "FaceRevokeChallengeClient";
FaceRevokeChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFace> lazyDaemon, @NonNull IBinder token,
int userId, @NonNull String owner, int sensorId) {
super(context, lazyDaemon, token, userId, owner, sensorId);
}

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Face-specific setFeature client supporting the {@link android.hardware.biometrics.face.V1_0}
@@ -45,7 +46,7 @@ public class FaceSetFeatureClient extends HalClientMonitor<IBiometricsFace> {
private final ArrayList<Byte> mHardwareAuthToken;
private final int mFaceId;
FaceSetFeatureClient(@NonNull Context context, @NonNull LazyDaemon<IBiometricsFace> lazyDaemon,
FaceSetFeatureClient(@NonNull Context context, @NonNull Supplier<IBiometricsFace> lazyDaemon,
@NonNull IBinder token, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId, int feature, boolean enabled,
byte[] hardwareAuthToken, int faceId) {

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.HalClientMonitor;
import java.io.File;
import java.util.Map;
import java.util.function.Supplier;
public class FaceUpdateActiveUserClient extends HalClientMonitor<IBiometricsFace> {
private static final String TAG = "FaceUpdateActiveUserClient";
@@ -39,7 +40,7 @@ public class FaceUpdateActiveUserClient extends HalClientMonitor<IBiometricsFace
@NonNull private final Map<Integer, Long> mAuthenticatorIds;
FaceUpdateActiveUserClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFace> lazyDaemon, int userId, @NonNull String owner,
@NonNull Supplier<IBiometricsFace> lazyDaemon, int userId, @NonNull String owner,
int sensorId, boolean hasEnrolledBiometrics,
@NonNull Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner,

View File

@@ -47,6 +47,7 @@ import com.android.server.biometrics.sensors.SensorOverlays;
import com.android.server.biometrics.sensors.fingerprint.Udfps;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Fingerprint-specific authentication client supporting the
@@ -65,7 +66,7 @@ class FingerprintAuthenticationClient extends AuthenticationClient<ISession> imp
private boolean mIsPointerDown;
FingerprintAuthenticationClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon,
@NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int targetUserId, long operationId,
boolean restricted, @NonNull String owner, int cookie, boolean requireConfirmation,

View File

@@ -35,6 +35,8 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.DetectionConsumer;
import com.android.server.biometrics.sensors.SensorOverlays;
import java.util.function.Supplier;
/**
* Performs fingerprint detection without exposing any matching information (e.g. accept/reject
* have the same haptic, lockout counter is not increased).
@@ -47,7 +49,7 @@ class FingerprintDetectClient extends AcquisitionClient<ISession> implements Det
@NonNull private final SensorOverlays mSensorOverlays;
@Nullable private ICancellationSignal mCancellationSignal;
FingerprintDetectClient(@NonNull Context context, @NonNull LazyDaemon<ISession> lazyDaemon,
FingerprintDetectClient(@NonNull Context context, @NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull String owner, int sensorId,

View File

@@ -46,6 +46,8 @@ import com.android.server.biometrics.sensors.fingerprint.FingerprintUtils;
import com.android.server.biometrics.sensors.fingerprint.Udfps;
import com.android.server.biometrics.sensors.fingerprint.UdfpsHelper;
import java.util.function.Supplier;
class FingerprintEnrollClient extends EnrollClient<ISession> implements Udfps {
private static final String TAG = "FingerprintEnrollClient";
@@ -59,7 +61,7 @@ class FingerprintEnrollClient extends EnrollClient<ISession> implements Udfps {
private boolean mIsPointerDown;
FingerprintEnrollClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token, long requestId,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, @NonNull String owner,
@NonNull BiometricUtils<Fingerprint> utils, int sensorId,

View File

@@ -27,6 +27,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.GenerateChallengeClient;
import java.util.function.Supplier;
/**
* Fingerprint-specific generateChallenge client for the {@link IFingerprint} AIDL HAL interface.
*/
@@ -34,7 +36,7 @@ class FingerprintGenerateChallengeClient extends GenerateChallengeClient<ISessio
private static final String TAG = "FingerprintGenerateChallengeClient";
FingerprintGenerateChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon,
@NonNull Supplier<ISession> lazyDaemon,
@NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener,
int userId, @NonNull String owner, int sensorId) {

View File

@@ -28,6 +28,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.HalClientMonitor;
import java.util.Map;
import java.util.function.Supplier;
class FingerprintGetAuthenticatorIdClient extends HalClientMonitor<ISession> {
@@ -36,7 +37,7 @@ class FingerprintGetAuthenticatorIdClient extends HalClientMonitor<ISession> {
private final Map<Integer, Long> mAuthenticatorIds;
FingerprintGetAuthenticatorIdClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, @NonNull String owner,
@NonNull Supplier<ISession> lazyDaemon, int userId, @NonNull String owner,
int sensorId, Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner,
0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_FINGERPRINT,

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.fingerprint.FingerprintUtils;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* Fingerprint-specific internal cleanup client supporting the
@@ -39,7 +40,7 @@ import java.util.Map;
class FingerprintInternalCleanupClient extends InternalCleanupClient<Fingerprint, ISession> {
FingerprintInternalCleanupClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, @NonNull String owner,
@NonNull Supplier<ISession> lazyDaemon, int userId, @NonNull String owner,
int sensorId, @NonNull List<Fingerprint> enrolledList,
@NonNull FingerprintUtils utils, @NonNull Map<Integer, Long> authenticatorIds) {
super(context, lazyDaemon, userId, owner, sensorId,
@@ -48,7 +49,7 @@ class FingerprintInternalCleanupClient extends InternalCleanupClient<Fingerprint
@Override
protected InternalEnumerateClient<ISession> getEnumerateClient(Context context,
LazyDaemon<ISession> lazyDaemon, IBinder token, int userId, String owner,
Supplier<ISession> lazyDaemon, IBinder token, int userId, String owner,
List<Fingerprint> enrolledList, BiometricUtils<Fingerprint> utils, int sensorId) {
return new FingerprintInternalEnumerateClient(context, lazyDaemon, token, userId, owner,
enrolledList, utils, sensorId);
@@ -56,7 +57,7 @@ class FingerprintInternalCleanupClient extends InternalCleanupClient<Fingerprint
@Override
protected RemovalClient<Fingerprint, ISession> getRemovalClient(Context context,
LazyDaemon<ISession> lazyDaemon, IBinder token, int biometricId, int userId,
Supplier<ISession> lazyDaemon, IBinder token, int biometricId, int userId,
String owner, BiometricUtils<Fingerprint> utils, int sensorId,
Map<Integer, Long> authenticatorIds) {
return new FingerprintRemovalClient(context, lazyDaemon, token,

View File

@@ -29,6 +29,7 @@ import com.android.server.biometrics.sensors.BiometricUtils;
import com.android.server.biometrics.sensors.InternalEnumerateClient;
import java.util.List;
import java.util.function.Supplier;
/**
* Fingerprint-specific internal client supporting the
@@ -38,7 +39,7 @@ class FingerprintInternalEnumerateClient extends InternalEnumerateClient<ISessio
private static final String TAG = "FingerprintInternalEnumerateClient";
protected FingerprintInternalEnumerateClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token, int userId,
@NonNull String owner, @NonNull List<Fingerprint> enrolledList,
@NonNull BiometricUtils<Fingerprint> utils, int sensorId) {
super(context, lazyDaemon, token, userId, owner, enrolledList, utils, sensorId,

View File

@@ -27,12 +27,13 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.InvalidationClient;
import java.util.Map;
import java.util.function.Supplier;
public class FingerprintInvalidationClient extends InvalidationClient<Fingerprint, ISession> {
private static final String TAG = "FingerprintInvalidationClient";
public FingerprintInvalidationClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, int sensorId,
@NonNull Supplier<ISession> lazyDaemon, int userId, int sensorId,
@NonNull Map<Integer, Long> authenticatorIds, @NonNull IInvalidationCallback callback) {
super(context, lazyDaemon, userId, sensorId, authenticatorIds, callback);
}

View File

@@ -31,6 +31,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.RemovalClient;
import java.util.Map;
import java.util.function.Supplier;
/**
* Fingerprint-specific removal client supporting the
@@ -42,7 +43,7 @@ class FingerprintRemovalClient extends RemovalClient<Fingerprint, ISession> {
private final int[] mBiometricIds;
FingerprintRemovalClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token,
@Nullable ClientMonitorCallbackConverter listener, int[] biometricIds, int userId,
@NonNull String owner, @NonNull BiometricUtils<Fingerprint> utils, int sensorId,
@NonNull Map<Integer, Long> authenticatorIds) {

View File

@@ -34,6 +34,8 @@ import com.android.server.biometrics.sensors.LockoutCache;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import java.util.function.Supplier;
/**
* Fingerprint-specific resetLockout client for the {@link IFingerprint} AIDL HAL interface.
* Updates the framework's lockout cache and notifies clients such as Keyguard when lockout is
@@ -48,7 +50,7 @@ class FingerprintResetLockoutClient extends HalClientMonitor<ISession> implement
private final LockoutResetDispatcher mLockoutResetDispatcher;
FingerprintResetLockoutClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, int userId, String owner, int sensorId,
@NonNull Supplier<ISession> lazyDaemon, int userId, String owner, int sensorId,
@NonNull byte[] hardwareAuthToken, @NonNull LockoutCache lockoutTracker,
@NonNull LockoutResetDispatcher lockoutResetDispatcher) {
super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner,

View File

@@ -26,6 +26,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.RevokeChallengeClient;
import java.util.function.Supplier;
/**
* Fingerprint-specific revokeChallenge client for the {@link IFingerprint} AIDL HAL interface.
*/
@@ -36,7 +38,7 @@ class FingerprintRevokeChallengeClient extends RevokeChallengeClient<ISession> {
private final long mChallenge;
FingerprintRevokeChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<ISession> lazyDaemon, @NonNull IBinder token,
int userId, @NonNull String owner, int sensorId, long challenge) {
super(context, lazyDaemon, token, userId, owner, sensorId);
mChallenge = challenge;

View File

@@ -30,13 +30,15 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.StartUserClient;
import java.util.function.Supplier;
public class FingerprintStartUserClient extends StartUserClient<IFingerprint, ISession> {
private static final String TAG = "FingerprintStartUserClient";
@NonNull private final ISessionCallback mSessionCallback;
public FingerprintStartUserClient(@NonNull Context context,
@NonNull LazyDaemon<IFingerprint> lazyDaemon,
@NonNull Supplier<IFingerprint> lazyDaemon,
@Nullable IBinder token, int userId, int sensorId,
@NonNull ISessionCallback sessionCallback,
@NonNull UserStartedCallback<ISession> callback) {

View File

@@ -27,11 +27,13 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallback;
import com.android.server.biometrics.sensors.StopUserClient;
import java.util.function.Supplier;
public class FingerprintStopUserClient extends StopUserClient<ISession> {
private static final String TAG = "FingerprintStopUserClient";
public FingerprintStopUserClient(@NonNull Context context,
@NonNull LazyDaemon<ISession> lazyDaemon, @Nullable IBinder token, int userId,
@NonNull Supplier<ISession> lazyDaemon, @Nullable IBinder token, int userId,
int sensorId, @NonNull UserStoppedCallback callback) {
super(context, lazyDaemon, token, userId, sensorId, callback);
}

View File

@@ -51,7 +51,6 @@ import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.BiometricScheduler;
import com.android.server.biometrics.sensors.EnumerateConsumer;
import com.android.server.biometrics.sensors.ErrorConsumer;
import com.android.server.biometrics.sensors.HalClientMonitor;
import com.android.server.biometrics.sensors.LockoutCache;
import com.android.server.biometrics.sensors.LockoutConsumer;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
@@ -66,6 +65,7 @@ import com.android.server.biometrics.sensors.fingerprint.GestureAvailabilityDisp
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;
/**
* Maintains the state of a single sensor within an instance of the
@@ -87,7 +87,7 @@ class Sensor {
@NonNull private final Map<Integer, Long> mAuthenticatorIds;
@Nullable private Session mCurrentSession;
@NonNull private final HalClientMonitor.LazyDaemon<ISession> mLazySession;
@NonNull private final Supplier<ISession> mLazySession;
static class Session {
@NonNull private final String mTag;
@@ -500,7 +500,7 @@ class Sensor {
mLazySession = () -> mCurrentSession != null ? mCurrentSession.mSession : null;
}
@NonNull HalClientMonitor.LazyDaemon<ISession> getLazySession() {
@NonNull Supplier<ISession> getLazySession() {
return mLazySession;
}

View File

@@ -67,7 +67,6 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.ClientMonitorCompositeCallback;
import com.android.server.biometrics.sensors.EnumerateConsumer;
import com.android.server.biometrics.sensors.ErrorConsumer;
import com.android.server.biometrics.sensors.HalClientMonitor;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
@@ -90,6 +89,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Supplier;
/**
* Supports a single instance of the {@link android.hardware.biometrics.fingerprint.V2_1} or
@@ -111,7 +111,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider
private final LockoutResetDispatcher mLockoutResetDispatcher;
private final LockoutFrameworkImpl mLockoutTracker;
private final BiometricTaskStackListener mTaskStackListener;
private final HalClientMonitor.LazyDaemon<IBiometricsFingerprint> mLazyDaemon;
private final Supplier<IBiometricsFingerprint> mLazyDaemon;
private final Map<Integer, Long> mAuthenticatorIds;
@Nullable private IBiometricsFingerprint mDaemon;

View File

@@ -45,6 +45,7 @@ import com.android.server.biometrics.sensors.fingerprint.Udfps;
import com.android.server.biometrics.sensors.fingerprint.UdfpsHelper;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Fingerprint-specific authentication client supporting the
@@ -64,7 +65,7 @@ class FingerprintAuthenticationClient extends AuthenticationClient<IBiometricsFi
private boolean mIsPointerDown;
FingerprintAuthenticationClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int targetUserId, long operationId,
boolean restricted, @NonNull String owner, int cookie, boolean requireConfirmation,

View File

@@ -40,6 +40,7 @@ import com.android.server.biometrics.sensors.fingerprint.Udfps;
import com.android.server.biometrics.sensors.fingerprint.UdfpsHelper;
import java.util.ArrayList;
import java.util.function.Supplier;
/**
* Performs fingerprint detection without exposing any matching information (e.g. accept/reject
@@ -55,7 +56,7 @@ class FingerprintDetectClient extends AcquisitionClient<IBiometricsFingerprint>
private boolean mIsPointerDown;
public FingerprintDetectClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon,
@NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int sensorId, @Nullable IUdfpsOverlayController udfpsOverlayController,

View File

@@ -41,6 +41,8 @@ import com.android.server.biometrics.sensors.SensorOverlays;
import com.android.server.biometrics.sensors.fingerprint.Udfps;
import com.android.server.biometrics.sensors.fingerprint.UdfpsHelper;
import java.util.function.Supplier;
/**
* Fingerprint-specific enroll client supporting the
* {@link android.hardware.biometrics.fingerprint.V2_1} and
@@ -56,7 +58,7 @@ public class FingerprintEnrollClient extends EnrollClient<IBiometricsFingerprint
private boolean mIsPointerDown;
FingerprintEnrollClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
long requestId, @NonNull ClientMonitorCallbackConverter listener, int userId,
@NonNull byte[] hardwareAuthToken, @NonNull String owner,
@NonNull BiometricUtils<Fingerprint> utils, int timeoutSec, int sensorId,

View File

@@ -26,6 +26,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.GenerateChallengeClient;
import java.util.function.Supplier;
/**
* Fingerprint-specific generateChallenge/preEnroll client supporting the
* {@link android.hardware.biometrics.fingerprint.V2_1} and
@@ -37,7 +39,7 @@ public class FingerprintGenerateChallengeClient
private static final String TAG = "FingerprintGenerateChallengeClient";
FingerprintGenerateChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int userId, @NonNull String owner,
int sensorId) {
super(context, lazyDaemon, token, listener, userId, owner, sensorId);

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.RemovalClient;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* Fingerprint-specific internal cleanup client supporting the
@@ -40,7 +41,7 @@ class FingerprintInternalCleanupClient
extends InternalCleanupClient<Fingerprint, IBiometricsFingerprint> {
FingerprintInternalCleanupClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, int userId,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, int userId,
@NonNull String owner, int sensorId, @NonNull List<Fingerprint> enrolledList,
@NonNull BiometricUtils<Fingerprint> utils,
@NonNull Map<Integer, Long> authenticatorIds) {
@@ -50,7 +51,7 @@ class FingerprintInternalCleanupClient
@Override
protected InternalEnumerateClient<IBiometricsFingerprint> getEnumerateClient(
Context context, LazyDaemon<IBiometricsFingerprint> lazyDaemon, IBinder token,
Context context, Supplier<IBiometricsFingerprint> lazyDaemon, IBinder token,
int userId, String owner, List<Fingerprint> enrolledList,
BiometricUtils<Fingerprint> utils, int sensorId) {
return new FingerprintInternalEnumerateClient(context, lazyDaemon, token, userId, owner,
@@ -59,7 +60,7 @@ class FingerprintInternalCleanupClient
@Override
protected RemovalClient<Fingerprint, IBiometricsFingerprint> getRemovalClient(Context context,
LazyDaemon<IBiometricsFingerprint> lazyDaemon, IBinder token,
Supplier<IBiometricsFingerprint> lazyDaemon, IBinder token,
int biometricId, int userId, String owner, BiometricUtils<Fingerprint> utils,
int sensorId, Map<Integer, Long> authenticatorIds) {
// Internal remove does not need to send results to anyone. Cleanup (enumerate + remove)

View File

@@ -29,6 +29,7 @@ import com.android.server.biometrics.sensors.BiometricUtils;
import com.android.server.biometrics.sensors.InternalEnumerateClient;
import java.util.List;
import java.util.function.Supplier;
/**
* Fingerprint-specific internal enumerate client supporting the
@@ -39,7 +40,7 @@ class FingerprintInternalEnumerateClient extends InternalEnumerateClient<IBiomet
private static final String TAG = "FingerprintInternalEnumerateClient";
FingerprintInternalEnumerateClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
int userId, @NonNull String owner, @NonNull List<Fingerprint> enrolledList,
@NonNull BiometricUtils<Fingerprint> utils, int sensorId) {
super(context, lazyDaemon, token, userId, owner, enrolledList, utils, sensorId,

View File

@@ -30,6 +30,7 @@ import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.RemovalClient;
import java.util.Map;
import java.util.function.Supplier;
/**
* Fingerprint-specific removal client supporting the
@@ -42,7 +43,7 @@ class FingerprintRemovalClient extends RemovalClient<Fingerprint, IBiometricsFin
private final int mBiometricId;
FingerprintRemovalClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener, int biometricId, int userId,
@NonNull String owner, @NonNull BiometricUtils<Fingerprint> utils, int sensorId,
@NonNull Map<Integer, Long> authenticatorIds) {

View File

@@ -25,6 +25,8 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.RevokeChallengeClient;
import java.util.function.Supplier;
/**
* Fingerprint-specific revokeChallenge client supporting the
* {@link android.hardware.biometrics.fingerprint.V2_1} and
@@ -36,7 +38,7 @@ public class FingerprintRevokeChallengeClient
private static final String TAG = "FingerprintRevokeChallengeClient";
FingerprintRevokeChallengeClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, @NonNull IBinder token,
int userId, @NonNull String owner, int sensorId) {
super(context, lazyDaemon, token, userId, owner, sensorId);
}

View File

@@ -49,7 +49,7 @@ public class FingerprintUpdateActiveUserClient extends HalClientMonitor<IBiometr
private File mDirectory;
FingerprintUpdateActiveUserClient(@NonNull Context context,
@NonNull LazyDaemon<IBiometricsFingerprint> lazyDaemon, int userId,
@NonNull Supplier<IBiometricsFingerprint> lazyDaemon, int userId,
@NonNull String owner, int sensorId, Supplier<Integer> currentUserId,
boolean hasEnrolledBiometrics, @NonNull Map<Integer, Long> authenticatorIds,
boolean forceUpdateAuthenticatorId) {

View File

@@ -39,6 +39,8 @@ import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.Supplier;
@Presubmit
@SmallTest
public class AcquisitionClientTest {
@@ -87,7 +89,7 @@ public class AcquisitionClientTest {
boolean mHalOperationRunning;
public TestAcquisitionClient(@NonNull Context context,
@NonNull LazyDaemon<Object> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<Object> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter callback) {
super(context, lazyDaemon, token, callback, 0 /* userId */, "Test", 0 /* cookie */,
TEST_SENSOR_ID /* sensorId */, true /* shouldVibrate */, 0 /* statsModality */,

View File

@@ -61,6 +61,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.Supplier;
@Presubmit
@SmallTest
@RunWith(AndroidTestingRunner.class)
@@ -93,7 +95,7 @@ public class BiometricSchedulerTest {
@Test
public void testClientDuplicateFinish_ignoredBySchedulerAndDoesNotCrash() {
final HalClientMonitor.LazyDaemon<Object> nonNullDaemon = () -> mock(Object.class);
final Supplier<Object> nonNullDaemon = () -> mock(Object.class);
final HalClientMonitor<Object> client1 =
new TestHalClientMonitor(mContext, mToken, nonNullDaemon);
@@ -184,7 +186,7 @@ public class BiometricSchedulerTest {
@Test
public void testCancelNotInvoked_whenOperationWaitingForCookie() {
final HalClientMonitor.LazyDaemon<Object> lazyDaemon1 = () -> mock(Object.class);
final Supplier<Object> lazyDaemon1 = () -> mock(Object.class);
final TestAuthenticationClient client1 = new TestAuthenticationClient(mContext,
lazyDaemon1, mToken, mock(ClientMonitorCallbackConverter.class));
final ClientMonitorCallback callback1 = mock(ClientMonitorCallback.class);
@@ -296,7 +298,7 @@ public class BiometricSchedulerTest {
@Test
public void testCancelPendingAuth() throws RemoteException {
final HalClientMonitor.LazyDaemon<Object> lazyDaemon = () -> mock(Object.class);
final Supplier<Object> lazyDaemon = () -> mock(Object.class);
final TestHalClientMonitor client1 = new TestHalClientMonitor(mContext, mToken, lazyDaemon);
final ClientMonitorCallbackConverter callback = mock(ClientMonitorCallbackConverter.class);
final TestAuthenticationClient client2 = new TestAuthenticationClient(mContext, lazyDaemon,
@@ -360,7 +362,7 @@ public class BiometricSchedulerTest {
private void testCancelsAuthDetectWhenRequestId(@Nullable Long requestId, long cancelRequestId,
boolean started) {
final HalClientMonitor.LazyDaemon<Object> lazyDaemon = () -> mock(Object.class);
final Supplier<Object> lazyDaemon = () -> mock(Object.class);
final ClientMonitorCallbackConverter callback = mock(ClientMonitorCallbackConverter.class);
testCancelsWhenRequestId(requestId, cancelRequestId, started,
new TestAuthenticationClient(mContext, lazyDaemon, mToken, callback));
@@ -383,7 +385,7 @@ public class BiometricSchedulerTest {
private void testCancelsEnrollWhenRequestId(@Nullable Long requestId, long cancelRequestId,
boolean started) {
final HalClientMonitor.LazyDaemon<Object> lazyDaemon = () -> mock(Object.class);
final Supplier<Object> lazyDaemon = () -> mock(Object.class);
final ClientMonitorCallbackConverter callback = mock(ClientMonitorCallbackConverter.class);
testCancelsWhenRequestId(requestId, cancelRequestId, started,
new TestEnrollClient(mContext, lazyDaemon, mToken, callback));
@@ -441,7 +443,7 @@ public class BiometricSchedulerTest {
public void testCancelsPending_whenAuthRequestIdsSet() {
final long requestId1 = 10;
final long requestId2 = 20;
final HalClientMonitor.LazyDaemon<Object> lazyDaemon = () -> mock(Object.class);
final Supplier<Object> lazyDaemon = () -> mock(Object.class);
final ClientMonitorCallbackConverter callback = mock(ClientMonitorCallbackConverter.class);
final TestAuthenticationClient client1 = new TestAuthenticationClient(
mContext, lazyDaemon, mToken, callback);
@@ -500,7 +502,7 @@ public class BiometricSchedulerTest {
@Test
public void testClientDestroyed_afterFinish() {
final HalClientMonitor.LazyDaemon<Object> nonNullDaemon = () -> mock(Object.class);
final Supplier<Object> nonNullDaemon = () -> mock(Object.class);
final TestHalClientMonitor client =
new TestHalClientMonitor(mContext, mToken, nonNullDaemon);
mScheduler.scheduleClientMonitor(client);
@@ -520,7 +522,7 @@ public class BiometricSchedulerTest {
int mNumCancels = 0;
public TestAuthenticationClient(@NonNull Context context,
@NonNull LazyDaemon<Object> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<Object> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener) {
super(context, lazyDaemon, token, listener, 0 /* targetUserId */, 0 /* operationId */,
false /* restricted */, TAG, 1 /* cookie */, false /* requireConfirmation */,
@@ -567,7 +569,7 @@ public class BiometricSchedulerTest {
int mNumCancels = 0;
TestEnrollClient(@NonNull Context context,
@NonNull LazyDaemon<Object> lazyDaemon, @NonNull IBinder token,
@NonNull Supplier<Object> lazyDaemon, @NonNull IBinder token,
@NonNull ClientMonitorCallbackConverter listener) {
super(context, lazyDaemon, token, listener, 0 /* userId */, new byte[69],
"test" /* owner */, mock(BiometricUtils.class),
@@ -604,12 +606,12 @@ public class BiometricSchedulerTest {
private boolean mDestroyed;
TestHalClientMonitor(@NonNull Context context, @NonNull IBinder token,
@NonNull LazyDaemon<Object> lazyDaemon) {
@NonNull Supplier<Object> lazyDaemon) {
this(context, token, lazyDaemon, 0 /* cookie */, BiometricsProto.CM_UPDATE_ACTIVE_USER);
}
TestHalClientMonitor(@NonNull Context context, @NonNull IBinder token,
@NonNull LazyDaemon<Object> lazyDaemon, int cookie, int protoEnum) {
@NonNull Supplier<Object> lazyDaemon, int cookie, int protoEnum) {
super(context, lazyDaemon, token /* token */, null /* listener */, 0 /* userId */,
TAG, cookie, TEST_SENSOR_ID, 0 /* statsModality */,
0 /* statsAction */, 0 /* statsClient */);

View File

@@ -47,6 +47,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.Supplier;
@Presubmit
@RunWith(AndroidTestingRunner.class)
@RunWithLooper
@@ -223,7 +225,7 @@ public class UserAwareBiometricSchedulerTest {
private static class TestStopUserClient extends StopUserClient<Object> {
public TestStopUserClient(@NonNull Context context,
@NonNull LazyDaemon<Object> lazyDaemon, @Nullable IBinder token, int userId,
@NonNull Supplier<Object> lazyDaemon, @Nullable IBinder token, int userId,
int sensorId, @NonNull UserStoppedCallback callback) {
super(context, lazyDaemon, token, userId, sensorId, callback);
}
@@ -251,7 +253,7 @@ public class UserAwareBiometricSchedulerTest {
ClientMonitorCallback mCallback;
public TestStartUserClient(@NonNull Context context,
@NonNull LazyDaemon<Object> lazyDaemon, @Nullable IBinder token, int userId,
@NonNull Supplier<Object> lazyDaemon, @Nullable IBinder token, int userId,
int sensorId, @NonNull UserStartedCallback<Object> callback, boolean shouldFinish) {
super(context, lazyDaemon, token, userId, sensorId, callback);
mShouldFinish = shouldFinish;