From 28c1d6be08ae5df7fb11c267f9c8963e9bfe050a Mon Sep 17 00:00:00 2001 From: Hao Dong Date: Tue, 18 Apr 2023 21:29:32 +0000 Subject: [PATCH] Update lockout state during auth session Test: atest AuthSessionCoordinatorTest Bug: 275743371 Change-Id: Icf4ab00f6ace970d97a0de953c6ec9e7fcc0a798 --- .../biometrics/sensors/AuthSessionCoordinator.java | 8 +++++--- .../biometrics/sensors/AuthSessionCoordinatorTest.java | 10 +++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java b/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java index 2653ce76459de..d9947ddedcef6 100644 --- a/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java +++ b/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java @@ -95,8 +95,10 @@ public class AuthSessionCoordinator implements AuthSessionListener { } } - mRingBuffer.addApiCall("internal : onAuthSessionEnded(" + mUserId + ")"); - clearSession(); + if (mAuthOperations.isEmpty()) { + mRingBuffer.addApiCall("internal : onAuthSessionEnded(" + mUserId + ")"); + clearSession(); + } } private void clearSession() { @@ -203,7 +205,7 @@ public class AuthSessionCoordinator implements AuthSessionListener { return; } mAuthOperations.remove(sensorId); - if (mIsAuthenticating && mAuthOperations.isEmpty()) { + if (mIsAuthenticating) { endAuthSession(); } } diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java index f26c7e63a273c..9d84a074dd41f 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java @@ -135,7 +135,7 @@ public class AuthSessionCoordinatorTest { } @Test - public void testUserCanAuthDuringLockoutOfSameSession() { + public void testUserLockedDuringLockoutOfSameSession() { mCoordinator.resetLockoutFor(PRIMARY_USER, BIOMETRIC_STRONG, 0 /* requestId */); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isEqualTo( @@ -151,9 +151,9 @@ public class AuthSessionCoordinatorTest { 0 /* requestId */); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isEqualTo( - LockoutTracker.LOCKOUT_NONE); + LockoutTracker.LOCKOUT_PERMANENT); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_WEAK)).isEqualTo( - LockoutTracker.LOCKOUT_NONE); + LockoutTracker.LOCKOUT_PERMANENT); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_STRONG)).isEqualTo( LockoutTracker.LOCKOUT_NONE); } @@ -191,9 +191,9 @@ public class AuthSessionCoordinatorTest { 0 /* requestId */); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isEqualTo( - LockoutTracker.LOCKOUT_NONE); + LockoutTracker.LOCKOUT_PERMANENT); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_WEAK)).isEqualTo( - LockoutTracker.LOCKOUT_NONE); + LockoutTracker.LOCKOUT_PERMANENT); assertThat(mCoordinator.getLockoutStateFor(PRIMARY_USER, BIOMETRIC_STRONG)).isEqualTo( LockoutTracker.LOCKOUT_NONE);