diff options
author | Danny Baumann <dannybaumann@web.de> | 2017-09-22 08:34:09 +0200 |
---|---|---|
committer | Rashed Abdel-Tawab <rashed@linux.com> | 2017-09-22 08:19:08 -0700 |
commit | 0e33a8e0a166164245d21fd988b5f1327cf7742f (patch) | |
tree | bebbc2a94234f9c7b184bd9dade7c26c4c34b0d0 /biometrics | |
parent | edc6b613415cf07f5c864bfb90998b33adae6c4b (diff) | |
download | android_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.cpp | 32 |
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; } } |