Loading services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { prop.supportsDetectInteraction, prop.halControlsPreview, false /* resetLockoutRequiresChallenge */); final Sensor sensor = new Sensor(getTag() + "/" + sensorId, this, mContext, mHandler, internalProp); internalProp, lockoutResetDispatcher); mSensors.put(sensorId, sensor); Slog.d(getTag(), "Added: " + internalProp); Loading services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java +17 −2 Original line number Diff line number Diff line Loading @@ -80,11 +80,26 @@ public class FaceResetLockoutClient extends HalClientMonitor<ISession> implement } void onLockoutCleared() { mLockoutCache.setLockoutModeForUser(getTargetUserId(), LockoutTracker.LOCKOUT_NONE); mLockoutResetDispatcher.notifyLockoutResetCallbacks(getSensorId()); resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); mCallback.onClientFinished(this, true /* success */); } /** * Reset the local lockout state and notify any listeners. * * This should only be called when the HAL sends a reset request directly to the * framework (i.e. time based reset, etc.). When the HAL is responding to a * resetLockout request from an instance of this client {@link #onLockoutCleared()} should * be used instead. */ static void resetLocalLockoutStateToNone(int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { lockoutTracker.setLockoutModeForUser(userId, LockoutTracker.LOCKOUT_NONE); lockoutResetDispatcher.notifyLockoutResetCallbacks(sensorId); } @Override public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; Loading services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java +21 −8 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ 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; import com.android.server.biometrics.sensors.LockoutResetDispatcher; import com.android.server.biometrics.sensors.RemovalConsumer; import com.android.server.biometrics.sensors.StartUserClient; import com.android.server.biometrics.sensors.StopUserClient; Loading Loading @@ -124,10 +125,16 @@ public class Sensor { private final int mSensorId; private final int mUserId; @NonNull private final LockoutCache mLockoutCache; @NonNull private final LockoutResetDispatcher mLockoutResetDispatcher; @NonNull private final Callback mCallback; HalSessionCallback(@NonNull Context context, @NonNull Handler handler, @NonNull String tag, @NonNull UserAwareBiometricScheduler scheduler, int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher, @NonNull Callback callback) { mContext = context; mHandler = handler; Loading @@ -135,6 +142,8 @@ public class Sensor { mScheduler = scheduler; mSensorId = sensorId; mUserId = userId; mLockoutCache = lockoutTracker; mLockoutResetDispatcher = lockoutResetDispatcher; mCallback = callback; } Loading Loading @@ -327,13 +336,15 @@ public class Sensor { mHandler.post(() -> { final BaseClientMonitor client = mScheduler.getCurrentClient(); if (!(client instanceof FaceResetLockoutClient)) { Slog.e(mTag, "onLockoutCleared for non-resetLockout client: " + Utils.getClientName(client)); return; } final FaceResetLockoutClient resetLockoutClient = (FaceResetLockoutClient) client; Slog.d(mTag, "onLockoutCleared outside of resetLockout by HAL"); FaceResetLockoutClient.resetLocalLockoutStateToNone(mSensorId, mUserId, mLockoutCache, mLockoutResetDispatcher); } else { Slog.d(mTag, "onLockoutCleared after resetLockout"); final FaceResetLockoutClient resetLockoutClient = (FaceResetLockoutClient) client; resetLockoutClient.onLockoutCleared(); } }); } Loading Loading @@ -465,7 +476,8 @@ public class Sensor { } Sensor(@NonNull String tag, @NonNull FaceProvider provider, @NonNull Context context, @NonNull Handler handler, @NonNull FaceSensorPropertiesInternal sensorProperties) { @NonNull Handler handler, @NonNull FaceSensorPropertiesInternal sensorProperties, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { mTag = tag; mProvider = provider; mContext = context; Loading Loading @@ -493,7 +505,8 @@ public class Sensor { final int sensorId = mSensorProperties.sensorId; final HalSessionCallback resultController = new HalSessionCallback(mContext, mHandler, mTag, mScheduler, sensorId, newUserId, callback); mHandler, mTag, mScheduler, sensorId, newUserId, mLockoutCache, lockoutResetDispatcher, callback); final StartUserClient.UserStartedCallback<ISession> userStartedCallback = (userIdStarted, newSession) -> { Loading services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi prop.sensorLocations[0].sensorLocationY, prop.sensorLocations[0].sensorRadius); final Sensor sensor = new Sensor(getTag() + "/" + sensorId, this, mContext, mHandler, internalProp, gestureAvailabilityDispatcher); internalProp, lockoutResetDispatcher, gestureAvailabilityDispatcher); mSensors.put(sensorId, sensor); Slog.d(getTag(), "Added: " + internalProp); Loading services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java +17 −2 Original line number Diff line number Diff line Loading @@ -80,11 +80,26 @@ class FingerprintResetLockoutClient extends HalClientMonitor<ISession> implement } void onLockoutCleared() { mLockoutCache.setLockoutModeForUser(getTargetUserId(), LockoutTracker.LOCKOUT_NONE); mLockoutResetDispatcher.notifyLockoutResetCallbacks(getSensorId()); resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); mCallback.onClientFinished(this, true /* success */); } /** * Reset the local lockout state and notify any listeners. * * This should only be called when the HAL sends a reset request directly to the * framework (i.e. time based reset, etc.). When the HAL is responding to a * resetLockout request from an instance of this client {@link #onLockoutCleared()} should * be used instead. */ static void resetLocalLockoutStateToNone(int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { lockoutTracker.setLockoutModeForUser(userId, LockoutTracker.LOCKOUT_NONE); lockoutResetDispatcher.notifyLockoutResetCallbacks(sensorId); } @Override public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; Loading Loading
services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { prop.supportsDetectInteraction, prop.halControlsPreview, false /* resetLockoutRequiresChallenge */); final Sensor sensor = new Sensor(getTag() + "/" + sensorId, this, mContext, mHandler, internalProp); internalProp, lockoutResetDispatcher); mSensors.put(sensorId, sensor); Slog.d(getTag(), "Added: " + internalProp); Loading
services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java +17 −2 Original line number Diff line number Diff line Loading @@ -80,11 +80,26 @@ public class FaceResetLockoutClient extends HalClientMonitor<ISession> implement } void onLockoutCleared() { mLockoutCache.setLockoutModeForUser(getTargetUserId(), LockoutTracker.LOCKOUT_NONE); mLockoutResetDispatcher.notifyLockoutResetCallbacks(getSensorId()); resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); mCallback.onClientFinished(this, true /* success */); } /** * Reset the local lockout state and notify any listeners. * * This should only be called when the HAL sends a reset request directly to the * framework (i.e. time based reset, etc.). When the HAL is responding to a * resetLockout request from an instance of this client {@link #onLockoutCleared()} should * be used instead. */ static void resetLocalLockoutStateToNone(int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { lockoutTracker.setLockoutModeForUser(userId, LockoutTracker.LOCKOUT_NONE); lockoutResetDispatcher.notifyLockoutResetCallbacks(sensorId); } @Override public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; Loading
services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java +21 −8 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ 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; import com.android.server.biometrics.sensors.LockoutResetDispatcher; import com.android.server.biometrics.sensors.RemovalConsumer; import com.android.server.biometrics.sensors.StartUserClient; import com.android.server.biometrics.sensors.StopUserClient; Loading Loading @@ -124,10 +125,16 @@ public class Sensor { private final int mSensorId; private final int mUserId; @NonNull private final LockoutCache mLockoutCache; @NonNull private final LockoutResetDispatcher mLockoutResetDispatcher; @NonNull private final Callback mCallback; HalSessionCallback(@NonNull Context context, @NonNull Handler handler, @NonNull String tag, @NonNull UserAwareBiometricScheduler scheduler, int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher, @NonNull Callback callback) { mContext = context; mHandler = handler; Loading @@ -135,6 +142,8 @@ public class Sensor { mScheduler = scheduler; mSensorId = sensorId; mUserId = userId; mLockoutCache = lockoutTracker; mLockoutResetDispatcher = lockoutResetDispatcher; mCallback = callback; } Loading Loading @@ -327,13 +336,15 @@ public class Sensor { mHandler.post(() -> { final BaseClientMonitor client = mScheduler.getCurrentClient(); if (!(client instanceof FaceResetLockoutClient)) { Slog.e(mTag, "onLockoutCleared for non-resetLockout client: " + Utils.getClientName(client)); return; } final FaceResetLockoutClient resetLockoutClient = (FaceResetLockoutClient) client; Slog.d(mTag, "onLockoutCleared outside of resetLockout by HAL"); FaceResetLockoutClient.resetLocalLockoutStateToNone(mSensorId, mUserId, mLockoutCache, mLockoutResetDispatcher); } else { Slog.d(mTag, "onLockoutCleared after resetLockout"); final FaceResetLockoutClient resetLockoutClient = (FaceResetLockoutClient) client; resetLockoutClient.onLockoutCleared(); } }); } Loading Loading @@ -465,7 +476,8 @@ public class Sensor { } Sensor(@NonNull String tag, @NonNull FaceProvider provider, @NonNull Context context, @NonNull Handler handler, @NonNull FaceSensorPropertiesInternal sensorProperties) { @NonNull Handler handler, @NonNull FaceSensorPropertiesInternal sensorProperties, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { mTag = tag; mProvider = provider; mContext = context; Loading Loading @@ -493,7 +505,8 @@ public class Sensor { final int sensorId = mSensorProperties.sensorId; final HalSessionCallback resultController = new HalSessionCallback(mContext, mHandler, mTag, mScheduler, sensorId, newUserId, callback); mHandler, mTag, mScheduler, sensorId, newUserId, mLockoutCache, lockoutResetDispatcher, callback); final StartUserClient.UserStartedCallback<ISession> userStartedCallback = (userIdStarted, newSession) -> { Loading
services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi prop.sensorLocations[0].sensorLocationY, prop.sensorLocations[0].sensorRadius); final Sensor sensor = new Sensor(getTag() + "/" + sensorId, this, mContext, mHandler, internalProp, gestureAvailabilityDispatcher); internalProp, lockoutResetDispatcher, gestureAvailabilityDispatcher); mSensors.put(sensorId, sensor); Slog.d(getTag(), "Added: " + internalProp); Loading
services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java +17 −2 Original line number Diff line number Diff line Loading @@ -80,11 +80,26 @@ class FingerprintResetLockoutClient extends HalClientMonitor<ISession> implement } void onLockoutCleared() { mLockoutCache.setLockoutModeForUser(getTargetUserId(), LockoutTracker.LOCKOUT_NONE); mLockoutResetDispatcher.notifyLockoutResetCallbacks(getSensorId()); resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); mCallback.onClientFinished(this, true /* success */); } /** * Reset the local lockout state and notify any listeners. * * This should only be called when the HAL sends a reset request directly to the * framework (i.e. time based reset, etc.). When the HAL is responding to a * resetLockout request from an instance of this client {@link #onLockoutCleared()} should * be used instead. */ static void resetLocalLockoutStateToNone(int sensorId, int userId, @NonNull LockoutCache lockoutTracker, @NonNull LockoutResetDispatcher lockoutResetDispatcher) { lockoutTracker.setLockoutModeForUser(userId, LockoutTracker.LOCKOUT_NONE); lockoutResetDispatcher.notifyLockoutResetCallbacks(sensorId); } @Override public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; Loading