diff options
author | Kevin Chyn <kchyn@google.com> | 2017-02-14 14:32:30 -0800 |
---|---|---|
committer | Kevin Chyn <kchyn@google.com> | 2017-02-15 16:31:14 -0800 |
commit | cf08e5e8a3a8b67480a664a4e9967835efe21a4a (patch) | |
tree | 973f362381c090cb35c9f6984086769d6e73b0f6 /fingerprint | |
parent | 5f2fc39bb40e1efe3bb698a44ea8daaaa8d96dcb (diff) | |
download | device_generic_goldfish-cf08e5e8a3a8b67480a664a4e9967835efe21a4a.tar.gz device_generic_goldfish-cf08e5e8a3a8b67480a664a4e9967835efe21a4a.tar.bz2 device_generic_goldfish-cf08e5e8a3a8b67480a664a4e9967835efe21a4a.zip |
implemented enumerate method in fingerprintservice
fixes bug 35358801
Test: ran enumeration in template with
1) more fingerprints in fingerprintd
2) more fingerprints in framework
3) no fingerprints in fingerprintd, but fingerprints in framework
4) no fingerprints in framework, but fingerprints in fingerprintd
Change-Id: If876ad0867360d1d05d6b12866a529024860d88a
Diffstat (limited to 'fingerprint')
-rw-r--r-- | fingerprint/fingerprint.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/fingerprint/fingerprint.c b/fingerprint/fingerprint.c index 4112d858..60410058 100644 --- a/fingerprint/fingerprint.c +++ b/fingerprint/fingerprint.c @@ -417,13 +417,21 @@ static int fingerprint_enumerate(struct fingerprint_device *device) { fingerprint_msg_t message = {0, {0}}; message.type = FINGERPRINT_TEMPLATE_ENUMERATING; message.data.enumerated.finger.gid = qdev->group_id; - for (int i = 0; i < MAX_NUM_FINGERS; i++) { - if (qdev->listener.secureid[i] != 0 || - qdev->listener.fingerid[i] != 0) { - template_count--; - message.data.enumerated.remaining_templates = template_count; - message.data.enumerated.finger.fid = qdev->listener.fingerid[i]; - qdev->device.notify(&message); + + if(template_count == 0) { + message.data.enumerated.remaining_templates = 0; + message.data.enumerated.finger.fid = 0; + qdev->device.notify(&message); + } + else { + for (int i = 0; i < MAX_NUM_FINGERS; i++) { + if (qdev->listener.secureid[i] != 0 || + qdev->listener.fingerid[i] != 0) { + template_count--; + message.data.enumerated.remaining_templates = template_count; + message.data.enumerated.finger.fid = qdev->listener.fingerid[i]; + qdev->device.notify(&message); + } } } |