summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Austin Delgado <austindelgado@google.com> 2024-08-28 14:22:24 -0700
committer Austin Delgado <austindelgado@google.com> 2024-09-11 10:30:44 -0700
commitd9af83bb76d50ec2225b2b11b9711aeb284809d3 (patch)
treee7317f2d1c255b6ba0954aa39449477897a1799f
parentee79bc64da1ca0e051714234deac9dd7804021f9 (diff)
Call setIgnore directly on session
Bug: 359289274 Flag: com.android.server.biometrics.set_ignore_speed_up Test: atest com.android.server.biometric Change-Id: I099bd1f65de2fbffa4fd9a16305bf73f826cb04b
-rw-r--r--services/core/java/com/android/server/biometrics/biometrics.aconfig10
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java13
2 files changed, 22 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/biometrics/biometrics.aconfig b/services/core/java/com/android/server/biometrics/biometrics.aconfig
index b2e95aa1cf28..d3da8dd2cfda 100644
--- a/services/core/java/com/android/server/biometrics/biometrics.aconfig
+++ b/services/core/java/com/android/server/biometrics/biometrics.aconfig
@@ -24,3 +24,13 @@ flag {
purpose: PURPOSE_BUGFIX
}
}
+
+flag {
+ name: "set_ignore_speed_up"
+ namespace: "biometrics_framework"
+ description: "This flag controls whether setIgnoreDisplayTouches is called directly on session from FingerprintProvider"
+ bug: "359289274"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
index 9edaa4e6d818..73baea83dfde 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
@@ -791,7 +791,17 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
@Override
public void setIgnoreDisplayTouches(long requestId, int sensorId, boolean ignoreTouches) {
- mFingerprintSensors.get(sensorId).getScheduler().getCurrentClientIfMatches(
+ if (Flags.setIgnoreSpeedUp()) {
+ try {
+ mFingerprintSensors.get(
+ sensorId).getLazySession().get().getSession().setIgnoreDisplayTouches(
+ ignoreTouches);
+ Slog.d(getTag(), "setIgnoreDisplayTouches set to " + ignoreTouches);
+ } catch (Exception e) {
+ Slog.w(getTag(), "setIgnore failed", e);
+ }
+ } else {
+ mFingerprintSensors.get(sensorId).getScheduler().getCurrentClientIfMatches(
requestId, (client) -> {
if (!(client instanceof Udfps)) {
Slog.e(getTag(),
@@ -800,6 +810,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
}
((Udfps) client).setIgnoreDisplayTouches(ignoreTouches);
});
+ }
}
@Override