Loading core/proto/android/server/biometrics.proto +2 −0 Original line number Diff line number Diff line Loading @@ -178,4 +178,6 @@ enum ClientMonitorEnum { CM_DETECT_INTERACTION = 13; CM_INVALIDATION_REQUESTER = 14; CM_INVALIDATE = 15; CM_STOP_USER = 16; CM_START_USER = 17; } No newline at end of file services/core/java/com/android/server/biometrics/sensors/BaseClientMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ public abstract class BaseClientMonitor extends LoggableMonitor return mListener; } public final int getTargetUserId() { public int getTargetUserId() { return mTargetUserId; } Loading services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java +6 −5 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class BiometricScheduler { private static final String BASE_TAG = "BiometricScheduler"; // Number of recent operations to keep in our logs for dumpsys private static final int LOG_NUM_RECENT_OPERATIONS = 50; protected static final int LOG_NUM_RECENT_OPERATIONS = 50; /** * Contains all the necessary information for a HAL operation. Loading Loading @@ -196,10 +196,10 @@ public class BiometricScheduler { } } @NonNull private final String mBiometricTag; @NonNull protected final String mBiometricTag; @Nullable private final GestureAvailabilityDispatcher mGestureAvailabilityDispatcher; @NonNull private final IBiometricService mBiometricService; @NonNull private final Handler mHandler = new Handler(Looper.getMainLooper()); @NonNull protected final Handler mHandler = new Handler(Looper.getMainLooper()); @NonNull private final InternalCallback mInternalCallback; @VisibleForTesting @NonNull final Deque<Operation> mPendingOperations; @VisibleForTesting @Nullable Operation mCurrentOperation; Loading Loading @@ -294,11 +294,11 @@ public class BiometricScheduler { return mInternalCallback; } private String getTag() { protected String getTag() { return BASE_TAG + "/" + mBiometricTag; } private void startNextOperationIfIdle() { protected void startNextOperationIfIdle() { if (mCurrentOperation != null) { Slog.v(getTag(), "Not idle, current operation: " + mCurrentOperation); return; Loading @@ -310,6 +310,7 @@ public class BiometricScheduler { mCurrentOperation = mPendingOperations.poll(); final BaseClientMonitor currentClient = mCurrentOperation.mClientMonitor; Slog.d(getTag(), "[Polled] " + mCurrentOperation); // If the operation at the front of the queue has been marked for cancellation, send // ERROR_CANCELED. No need to start this client. Loading services/core/java/com/android/server/biometrics/sensors/StartUserClient.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.biometrics.sensors; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.BiometricsProtoEnums; import android.os.IBinder; import com.android.internal.annotations.VisibleForTesting; import com.android.server.biometrics.BiometricsProto; public abstract class StartUserClient<T> extends HalClientMonitor<T> { public interface UserStartedCallback { void onUserStarted(int newUserId); } @NonNull @VisibleForTesting protected final UserStartedCallback mUserStartedCallback; public StartUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon, @Nullable IBinder token, int userId, int sensorId, @NonNull UserStartedCallback callback) { super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(), 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN); mUserStartedCallback = callback; } @Override public int getProtoEnum() { return BiometricsProto.CM_START_USER; } } No newline at end of file services/core/java/com/android/server/biometrics/sensors/StopUserClient.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.biometrics.sensors; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.BiometricsProtoEnums; import android.os.IBinder; import com.android.internal.annotations.VisibleForTesting; import com.android.server.biometrics.BiometricsProto; public abstract class StopUserClient<T> extends HalClientMonitor<T> { public interface UserStoppedCallback { void onUserStopped(); } @NonNull @VisibleForTesting protected final UserStoppedCallback mUserStoppedCallback; public StopUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon, @Nullable IBinder token, int userId, int sensorId, @NonNull UserStoppedCallback callback) { super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(), 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN); mUserStoppedCallback = callback; } @Override public int getProtoEnum() { return BiometricsProto.CM_STOP_USER; } } Loading
core/proto/android/server/biometrics.proto +2 −0 Original line number Diff line number Diff line Loading @@ -178,4 +178,6 @@ enum ClientMonitorEnum { CM_DETECT_INTERACTION = 13; CM_INVALIDATION_REQUESTER = 14; CM_INVALIDATE = 15; CM_STOP_USER = 16; CM_START_USER = 17; } No newline at end of file
services/core/java/com/android/server/biometrics/sensors/BaseClientMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ public abstract class BaseClientMonitor extends LoggableMonitor return mListener; } public final int getTargetUserId() { public int getTargetUserId() { return mTargetUserId; } Loading
services/core/java/com/android/server/biometrics/sensors/BiometricScheduler.java +6 −5 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class BiometricScheduler { private static final String BASE_TAG = "BiometricScheduler"; // Number of recent operations to keep in our logs for dumpsys private static final int LOG_NUM_RECENT_OPERATIONS = 50; protected static final int LOG_NUM_RECENT_OPERATIONS = 50; /** * Contains all the necessary information for a HAL operation. Loading Loading @@ -196,10 +196,10 @@ public class BiometricScheduler { } } @NonNull private final String mBiometricTag; @NonNull protected final String mBiometricTag; @Nullable private final GestureAvailabilityDispatcher mGestureAvailabilityDispatcher; @NonNull private final IBiometricService mBiometricService; @NonNull private final Handler mHandler = new Handler(Looper.getMainLooper()); @NonNull protected final Handler mHandler = new Handler(Looper.getMainLooper()); @NonNull private final InternalCallback mInternalCallback; @VisibleForTesting @NonNull final Deque<Operation> mPendingOperations; @VisibleForTesting @Nullable Operation mCurrentOperation; Loading Loading @@ -294,11 +294,11 @@ public class BiometricScheduler { return mInternalCallback; } private String getTag() { protected String getTag() { return BASE_TAG + "/" + mBiometricTag; } private void startNextOperationIfIdle() { protected void startNextOperationIfIdle() { if (mCurrentOperation != null) { Slog.v(getTag(), "Not idle, current operation: " + mCurrentOperation); return; Loading @@ -310,6 +310,7 @@ public class BiometricScheduler { mCurrentOperation = mPendingOperations.poll(); final BaseClientMonitor currentClient = mCurrentOperation.mClientMonitor; Slog.d(getTag(), "[Polled] " + mCurrentOperation); // If the operation at the front of the queue has been marked for cancellation, send // ERROR_CANCELED. No need to start this client. Loading
services/core/java/com/android/server/biometrics/sensors/StartUserClient.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.biometrics.sensors; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.BiometricsProtoEnums; import android.os.IBinder; import com.android.internal.annotations.VisibleForTesting; import com.android.server.biometrics.BiometricsProto; public abstract class StartUserClient<T> extends HalClientMonitor<T> { public interface UserStartedCallback { void onUserStarted(int newUserId); } @NonNull @VisibleForTesting protected final UserStartedCallback mUserStartedCallback; public StartUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon, @Nullable IBinder token, int userId, int sensorId, @NonNull UserStartedCallback callback) { super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(), 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN); mUserStartedCallback = callback; } @Override public int getProtoEnum() { return BiometricsProto.CM_START_USER; } } No newline at end of file
services/core/java/com/android/server/biometrics/sensors/StopUserClient.java 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.biometrics.sensors; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.BiometricsProtoEnums; import android.os.IBinder; import com.android.internal.annotations.VisibleForTesting; import com.android.server.biometrics.BiometricsProto; public abstract class StopUserClient<T> extends HalClientMonitor<T> { public interface UserStoppedCallback { void onUserStopped(); } @NonNull @VisibleForTesting protected final UserStoppedCallback mUserStoppedCallback; public StopUserClient(@NonNull Context context, @NonNull LazyDaemon<T> lazyDaemon, @Nullable IBinder token, int userId, int sensorId, @NonNull UserStoppedCallback callback) { super(context, lazyDaemon, token, null /* listener */, userId, context.getOpPackageName(), 0 /* cookie */, sensorId, BiometricsProtoEnums.MODALITY_UNKNOWN, BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN); mUserStoppedCallback = callback; } @Override public int getProtoEnum() { return BiometricsProto.CM_STOP_USER; } }