summaryrefslogtreecommitdiffstats
path: root/biometrics
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2017-09-22 08:34:09 +0200
committerRashed Abdel-Tawab <rashed@linux.com>2017-09-22 08:19:08 -0700
commit0e33a8e0a166164245d21fd988b5f1327cf7742f (patch)
treebebbc2a94234f9c7b184bd9dade7c26c4c34b0d0 /biometrics
parentedc6b613415cf07f5c864bfb90998b33adae6c4b (diff)
downloadandroid_hardware_lineage_interfaces-0e33a8e0a166164245d21fd988b5f1327cf7742f.tar.gz
android_hardware_lineage_interfaces-0e33a8e0a166164245d21fd988b5f1327cf7742f.tar.bz2
android_hardware_lineage_interfaces-0e33a8e0a166164245d21fd988b5f1327cf7742f.zip
fingerprint: Simplify enumeration code
Change-Id: I882f782ae5ea57b46067a4048028cf785970a5ed
Diffstat (limited to 'biometrics')
-rw-r--r--biometrics/fingerprint/BiometricsFingerprint.cpp32
1 files changed, 11 insertions, 21 deletions
diff --git a/biometrics/fingerprint/BiometricsFingerprint.cpp b/biometrics/fingerprint/BiometricsFingerprint.cpp
index a83839f..cad25a0 100644
--- a/biometrics/fingerprint/BiometricsFingerprint.cpp
+++ b/biometrics/fingerprint/BiometricsFingerprint.cpp
@@ -186,21 +186,20 @@ Return<RequestStatus> BiometricsFingerprint::enumerate() {
uint32_t n = MAX_FINGERPRINTS;
enumerate_2_0 enumerate = (enumerate_2_0) mDevice->enumerate;
int ret = enumerate(mDevice, results, &n);
- Return<RequestStatus> rv = ErrorFilter(ret);
- if (ret == 0) {
- uint32_t i;
- fingerprint_msg_t msg;
-
- msg.type = FINGERPRINT_TEMPLATE_ENUMERATING;
- for (i = 0; i < n; i++) {
- msg.data.enumerated.finger = results[i];
- msg.data.enumerated.remaining_templates = n - i - 1;
- mDevice->notify(&msg);
+ if (ret == 0 && mClientCallback != nullptr) {
+ ALOGD("Got %d enumerated templates", n);
+ for (uint32_t i = 0; i < n; i++) {
+ const uint64_t devId = reinterpret_cast<uint64_t>(mDevice);
+ const auto& fp = results[i];
+ ALOGD("onEnumerate(fid=%d, gid=%d)", fp.fid, fp.gid);
+ if (!mClientCallback->onEnumerate(devId, fp.fid, fp.gid, n - i - 1).isOk()) {
+ ALOGE("failed to invoke fingerprint onEnumerate callback");
+ }
}
}
- return rv;
+ return ErrorFilter(ret);
}
Return<RequestStatus> BiometricsFingerprint::remove(uint32_t gid, uint32_t fid) {
@@ -357,16 +356,7 @@ void BiometricsFingerprint::notify(const fingerprint_msg_t *msg) {
}
break;
case FINGERPRINT_TEMPLATE_ENUMERATING:
- ALOGD("onEnumerate(fid=%d, gid=%d, rem=%d)",
- msg->data.enumerated.finger.fid,
- msg->data.enumerated.finger.gid,
- msg->data.enumerated.remaining_templates);
- if (!thisPtr->mClientCallback->onEnumerate(devId,
- msg->data.enumerated.finger.fid,
- msg->data.enumerated.finger.gid,
- msg->data.enumerated.remaining_templates).isOk()) {
- ALOGE("failed to invoke fingerprint onEnumerate callback");
- }
+ // ignored, won't happen for 2.0 HALs
break;
}
}