Merge "Update FP listening right after POWER_PRESSED err" into tm-qpr-dev am: 3971c56c12

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20612798

Change-Id: I03c06e59aa6ae9cef66416521198aafff38c8282
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-12-02 23:41:25 +00:00
committed by Automerger Merge Worker
3 changed files with 19 additions and 7 deletions

View File

@@ -955,12 +955,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
setFingerprintRunningState(BIOMETRIC_STATE_STOPPED); setFingerprintRunningState(BIOMETRIC_STATE_STOPPED);
} }
if (msgId == FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE if (msgId == FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE) {
|| msgId == FingerprintManager.BIOMETRIC_ERROR_POWER_PRESSED) { mLogger.logRetryAfterFpErrorWithDelay(msgId, errString, HAL_ERROR_RETRY_TIMEOUT);
mLogger.logRetryAfterFpError(msgId, errString);
mHandler.postDelayed(mRetryFingerprintAuthentication, HAL_ERROR_RETRY_TIMEOUT); mHandler.postDelayed(mRetryFingerprintAuthentication, HAL_ERROR_RETRY_TIMEOUT);
} }
if (msgId == FingerprintManager.BIOMETRIC_ERROR_POWER_PRESSED) {
mLogger.logRetryAfterFpErrorWithDelay(msgId, errString, 0);
updateFingerprintListeningState(BIOMETRIC_ACTION_START);
}
boolean lockedOutStateChanged = false; boolean lockedOutStateChanged = false;
if (msgId == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT_PERMANENT) { if (msgId == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT_PERMANENT) {
lockedOutStateChanged = !mFingerprintLockedOutPermanent; lockedOutStateChanged = !mFingerprintLockedOutPermanent;

View File

@@ -225,12 +225,13 @@ class KeyguardUpdateMonitorLogger @Inject constructor(
{ "Retrying face after HW unavailable, attempt $int1" }) { "Retrying face after HW unavailable, attempt $int1" })
} }
fun logRetryAfterFpError(msgId: Int, errString: String?) { fun logRetryAfterFpErrorWithDelay(msgId: Int, errString: String?, delay: Int) {
logBuffer.log(TAG, DEBUG, { logBuffer.log(TAG, DEBUG, {
int1 = msgId int1 = msgId
int2 = delay
str1 = "$errString" str1 = "$errString"
}, { }, {
"Fingerprint retrying auth due to($int1) -> $str1" "Fingerprint retrying auth after $int2 ms due to($int1) -> $str1"
}) })
} }

View File

@@ -837,6 +837,15 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean()); verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
} }
@Test
public void testFingerprintPowerPressed_restartsFingerprintListeningStateImmediately() {
mKeyguardUpdateMonitor.mFingerprintAuthenticationCallback
.onAuthenticationError(FingerprintManager.BIOMETRIC_ERROR_POWER_PRESSED, "");
verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(),
anyInt());
}
@Test @Test
public void testOnFaceAuthenticated_skipsFaceWhenAuthenticated() { public void testOnFaceAuthenticated_skipsFaceWhenAuthenticated() {
// test whether face will be skipped if authenticated, so the value of isStrongBiometric // test whether face will be skipped if authenticated, so the value of isStrongBiometric
@@ -977,8 +986,6 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean()); verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(), verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(),
anyInt()); anyInt());
// resetFaceManager();
// resetFingerprintManager();
when(mFingerprintManager.getLockoutModeForUser(eq(FINGERPRINT_SENSOR_ID), eq(newUser))) when(mFingerprintManager.getLockoutModeForUser(eq(FINGERPRINT_SENSOR_ID), eq(newUser)))
.thenReturn(fingerprintLockoutMode); .thenReturn(fingerprintLockoutMode);