From 1ee573208c2c5f37e7e8737e08db4f31bf049666 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 7 Apr 2021 18:17:34 -0700 Subject: [PATCH] Handle errors during resetLockout IFace and IFingerprint HAL interfaces allow errors during resetLockout. This change updates the framework to finish the client and allow the scheduler to continue with the next operation. Fixes: 184774513 Test: Builds Change-Id: I31ca51f0487f35e613f750b918e22eb1b3fd10f1 --- .../sensors/face/aidl/FaceResetLockoutClient.java | 9 ++++++++- .../fingerprint/aidl/FingerprintResetLockoutClient.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java index 5e57950ccf6eb..f551930aee490 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java @@ -27,6 +27,7 @@ import android.util.Slog; import com.android.server.biometrics.BiometricsProto; import com.android.server.biometrics.HardwareAuthTokenUtils; +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.LockoutResetDispatcher; @@ -37,7 +38,7 @@ import com.android.server.biometrics.sensors.LockoutTracker; * Updates the framework's lockout cache and notifies clients such as Keyguard when lockout is * cleared. */ -public class FaceResetLockoutClient extends HalClientMonitor { +public class FaceResetLockoutClient extends HalClientMonitor implements ErrorConsumer { private static final String TAG = "FaceResetLockoutClient"; @@ -88,4 +89,10 @@ public class FaceResetLockoutClient extends HalClientMonitor { public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; } + + @Override + public void onError(int errorCode, int vendorCode) { + Slog.e(TAG, "Error during resetLockout: " + errorCode); + mCallback.onClientFinished(this, false /* success */); + } } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java index b00c592e83ff8..bab950691b080 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java @@ -27,6 +27,7 @@ import android.util.Slog; import com.android.server.biometrics.BiometricsProto; import com.android.server.biometrics.HardwareAuthTokenUtils; +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.LockoutResetDispatcher; @@ -37,7 +38,7 @@ import com.android.server.biometrics.sensors.LockoutTracker; * Updates the framework's lockout cache and notifies clients such as Keyguard when lockout is * cleared. */ -class FingerprintResetLockoutClient extends HalClientMonitor { +class FingerprintResetLockoutClient extends HalClientMonitor implements ErrorConsumer { private static final String TAG = "FingerprintResetLockoutClient"; @@ -88,4 +89,10 @@ class FingerprintResetLockoutClient extends HalClientMonitor { public int getProtoEnum() { return BiometricsProto.CM_RESET_LOCKOUT; } + + @Override + public void onError(int errorCode, int vendorCode) { + Slog.e(TAG, "Error during resetLockout: " + errorCode); + mCallback.onClientFinished(this, false /* success */); + } }