summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joshua McCloskey <joshmccloskey@google.com> 2022-10-11 17:57:30 +0000
committer Joshua Mccloskey <joshmccloskey@google.com> 2022-10-19 20:28:41 +0000
commit20987e7f2bc6cb71164a9b63bd8b998d7b89727c (patch)
tree516f9d2f2579ddbcb561418827c3d355f6d78dfd
parent9a0ed1afe1a4ea2c1e8537196d84c8c958a275d5 (diff)
Cleaned up side fps logic
Test: atest FingerprintAuthenticationClientTest Test: manual. Fixes: 252888293 Change-Id: I6a872757ecb6294b55536bea75919bb53db52603 Merged-In: I6a872757ecb6294b55536bea75919bb53db52603
-rw-r--r--core/res/res/values/config.xml6
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java47
3 files changed, 51 insertions, 5 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 5d1acbc5a07a..df6f575f2d3c 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -3553,9 +3553,9 @@
config_sidefpsSkipWaitForPowerVendorAcquireMessage -->
<integer name="config_sidefpsSkipWaitForPowerAcquireMessage">6</integer>
- <!-- This vendor acquired message that will cause the sidefpsKgPowerPress window to be skipped.
- config_sidefpsSkipWaitForPowerOnFingerUp must be true and
- config_sidefpsSkipWaitForPowerAcquireMessage must be BIOMETRIC_ACQUIRED_VENDOR == 6. -->
+ <!-- This vendor acquired message will cause the sidefpsKgPowerPress window to be skipped
+ when config_sidefpsSkipWaitForPowerAcquireMessage == 6 (VENDOR) and the vendor acquire
+ message equals this constant -->
<integer name="config_sidefpsSkipWaitForPowerVendorAcquireMessage">2</integer>
<!-- This config is used to force VoiceInteractionService to start on certain low ram devices.
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java
index b3f42be41cd7..85b11daf8cf8 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java
@@ -265,8 +265,7 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession>
final boolean acquireMessageMatch = acquiredInfo == mSkipWaitForPowerAcquireMessage;
final boolean vendorMessageMatch = vendorCode == mSkipWaitForPowerVendorAcquireMessage;
final boolean ignorePowerPress =
- (acquireMessageMatch && !shouldLookForVendor) || (shouldLookForVendor
- && acquireMessageMatch && vendorMessageMatch);
+ acquireMessageMatch && (!shouldLookForVendor || vendorMessageMatch);
if (ignorePowerPress) {
Slog.d(TAG, "(sideFPS) onFingerUp");
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java
index dea4d4fb7c64..79f08aad9e92 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java
@@ -40,6 +40,7 @@ import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.fingerprint.ISession;
import android.hardware.biometrics.fingerprint.PointerContext;
import android.hardware.fingerprint.Fingerprint;
+import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.hardware.fingerprint.ISidefpsController;
import android.hardware.fingerprint.IUdfpsOverlayController;
@@ -423,6 +424,52 @@ public class FingerprintAuthenticationClientTest {
}
@Test
+ public void sideFingerprintSkipsWindowIfVendorMessageMatch() throws Exception {
+ when(mSensorProps.isAnySidefpsType()).thenReturn(true);
+ final int vendorAcquireMessage = 1234;
+
+ mContext.getOrCreateTestableResources().addOverride(
+ R.integer.config_sidefpsSkipWaitForPowerAcquireMessage,
+ FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR);
+ mContext.getOrCreateTestableResources().addOverride(
+ R.integer.config_sidefpsSkipWaitForPowerVendorAcquireMessage,
+ vendorAcquireMessage);
+
+ final FingerprintAuthenticationClient client = createClient(1);
+ client.start(mCallback);
+ mLooper.dispatchAll();
+ client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */),
+ true /* authenticated */, new ArrayList<>());
+ client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR, vendorAcquireMessage);
+ mLooper.dispatchAll();
+
+ verify(mCallback).onClientFinished(any(), eq(true));
+ }
+
+ @Test
+ public void sideFingerprintDoesNotSkipWindowOnVendorErrorMismatch() throws Exception {
+ when(mSensorProps.isAnySidefpsType()).thenReturn(true);
+ final int vendorAcquireMessage = 1234;
+
+ mContext.getOrCreateTestableResources().addOverride(
+ R.integer.config_sidefpsSkipWaitForPowerAcquireMessage,
+ FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR);
+ mContext.getOrCreateTestableResources().addOverride(
+ R.integer.config_sidefpsSkipWaitForPowerVendorAcquireMessage,
+ vendorAcquireMessage);
+
+ final FingerprintAuthenticationClient client = createClient(1);
+ client.start(mCallback);
+ mLooper.dispatchAll();
+ client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */),
+ true /* authenticated */, new ArrayList<>());
+ client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR, 1);
+ mLooper.dispatchAll();
+
+ verify(mCallback, never()).onClientFinished(any(), anyBoolean());
+ }
+
+ @Test
public void sideFingerprintSendsAuthIfFingerUp() throws Exception {
when(mSensorProps.isAnySidefpsType()).thenReturn(true);