summaryrefslogtreecommitdiffstats
path: root/fingerprint
diff options
context:
space:
mode:
authorKevin Chyn <kchyn@google.com>2017-02-14 14:32:30 -0800
committerKevin Chyn <kchyn@google.com>2017-02-15 16:31:14 -0800
commitcf08e5e8a3a8b67480a664a4e9967835efe21a4a (patch)
tree973f362381c090cb35c9f6984086769d6e73b0f6 /fingerprint
parent5f2fc39bb40e1efe3bb698a44ea8daaaa8d96dcb (diff)
downloaddevice_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.c22
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);
+ }
}
}