summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kevin Chyn <kchyn@google.com> 2020-12-03 17:34:12 -0800
committer Kevin Chyn <kchyn@google.com> 2020-12-03 20:07:20 -0800
commit8e6c6bd68f57ebdf5475d8753e07871ebd5c9b7c (patch)
tree27ed4d0f824c09fa35596d78d0c547ea9b5aa2d6
parentd21d2184c960bc9380a604532f129fb29f22d08c (diff)
Update logic when multiple face sensors exist
FaceService should get the provider for the specified sensor, instead of getting the first provider. Bug: 172957689 Test: atest CtsBiometricsTestCases Change-Id: I8a3074501e90901df1121cf988dc504cf0d04d7f
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/face/FaceService.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java b/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java
index 7dc2cba0b974..cb56e8cd4b7f 100644
--- a/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/sensors/face/FaceService.java
@@ -127,17 +127,6 @@ public class FaceService extends SystemService implements BiometricServiceCallba
return properties;
}
- @NonNull
- private List<Face> getEnrolledFaces(int userId, String opPackageName) {
- final Pair<Integer, ServiceProvider> provider = getSingleProvider();
- if (provider == null) {
- Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName);
- return Collections.emptyList();
- }
-
- return provider.second.getEnrolledFaces(provider.first, userId);
- }
-
/**
* Receives the incoming binder calls from FaceManager.
*/
@@ -438,6 +427,7 @@ public class FaceService extends SystemService implements BiometricServiceCallba
pw.println("Dumping for sensorId: " + props.sensorId
+ ", provider: " + provider.getClass().getSimpleName());
provider.dumpInternal(props.sensorId, pw);
+ pw.println();
}
}
}
@@ -471,7 +461,13 @@ public class FaceService extends SystemService implements BiometricServiceCallba
Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS);
}
- return FaceService.this.getEnrolledFaces(userId, opPackageName);
+ final ServiceProvider provider = getProviderForSensor(sensorId);
+ if (provider == null) {
+ Slog.w(TAG, "Null provider for getEnrolledFaces, caller: " + opPackageName);
+ return Collections.emptyList();
+ }
+
+ return provider.getEnrolledFaces(sensorId, userId);
}
@Override // Binder call
@@ -482,7 +478,16 @@ public class FaceService extends SystemService implements BiometricServiceCallba
Utils.checkPermission(getContext(), INTERACT_ACROSS_USERS);
}
- return !FaceService.this.getEnrolledFaces(userId, opPackageName).isEmpty();
+ final ServiceProvider provider = getProviderForSensor(sensorId);
+ if (provider == null) {
+ Slog.w(TAG, "Null provider for hasEnrolledFaces, caller: " + opPackageName);
+ return false;
+ }
+
+ final boolean enrolled = provider.getEnrolledFaces(sensorId, userId).size() > 0;
+ Slog.d(TAG, "hasEnrolledFaces, sensor: " + sensorId + ", enrolled: " + enrolled);
+
+ return provider.getEnrolledFaces(sensorId, userId).size() > 0;
}
@Override // Binder call