diff options
author | 2020-12-03 17:34:12 -0800 | |
---|---|---|
committer | 2020-12-03 20:07:20 -0800 | |
commit | 8e6c6bd68f57ebdf5475d8753e07871ebd5c9b7c (patch) | |
tree | 27ed4d0f824c09fa35596d78d0c547ea9b5aa2d6 | |
parent | d21d2184c960bc9380a604532f129fb29f22d08c (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.java | 31 |
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 |