Fix fingerprint vhal permanent lockout
Separate timed lockout failure count from permanent one, so
it can be reset independently
Bug: 357671325
Test: atest android.hardware.biometrics.fingerprint.* -c
Change-Id: I08a8283a8eb464201b0f06c9c9bb7ba7635a54ac
diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
index 67eb837..7a43d7b 100644
--- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
+++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
@@ -389,10 +389,10 @@
if (isLockoutTimerStarted) isLockoutTimerAborted = true;
}
-void FakeFingerprintEngine::clearLockout(ISessionCallback* cb) {
+void FakeFingerprintEngine::clearLockout(ISessionCallback* cb, bool dueToTimeout) {
Fingerprint::cfg().set<bool>("lockout", false);
cb->onLockoutCleared();
- mLockoutTracker.reset();
+ mLockoutTracker.reset(dueToTimeout);
}
ndk::ScopedAStatus FakeFingerprintEngine::onPointerDownImpl(int32_t /*pointerId*/, int32_t /*x*/,
@@ -536,7 +536,7 @@
void FakeFingerprintEngine::lockoutTimerExpired(ISessionCallback* cb) {
BEGIN_OP(0);
if (!isLockoutTimerAborted) {
- clearLockout(cb);
+ clearLockout(cb, true);
}
isLockoutTimerStarted = false;
isLockoutTimerAborted = false;