fingerprint: send cancel-message to system

Android expects a FINGERPRINT_ERROR_CANCELED error-message if a
fingerprint authentication-requested was cancelled.

As bauth doesn't deliver such a message on its own, we use the
already notify-wrapper to send a message to Android if the
authentication was cancelled by bauth to allow a proper operation
of the fingerprint-service.

Some devices (hero, hero2) with the fingerprint scanner embedded in
the home button need this for the "config_fingerprintWakeAndUnlock"
option to work reliably.

Change-Id: Id5ec866a7608885925687a1927e0e6085e9b6cff
Ref: BUGBASH-1422
This commit is contained in:
Lukas0610 2018-03-07 13:04:55 +01:00 committed by Lukasz Patron
parent 5869cd357e
commit b0b7834861
1 changed files with 14 additions and 1 deletions

View File

@ -19,6 +19,7 @@
#include <dlfcn.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <cutils/log.h>
@ -122,7 +123,19 @@ static uint64_t fingerprint_get_auth_id(struct fingerprint_device __unused *dev)
static int fingerprint_cancel(struct fingerprint_device __unused *dev)
{
return bauth_handle->ss_fingerprint_cancel();
fingerprint_msg_t *cancel_msg;
int ret = 0;
ret = bauth_handle->ss_fingerprint_cancel();
cancel_msg = (fingerprint_msg_t *)malloc(sizeof(fingerprint_msg_t));
memset(cancel_msg, 0, sizeof(fingerprint_msg_t));
cancel_msg->type = FINGERPRINT_ERROR;
cancel_msg->data.error = FINGERPRINT_ERROR_CANCELED;
original_notify(cancel_msg);
return ret;
}
static int fingerprint_remove(struct fingerprint_device __unused *dev, uint32_t gid, uint32_t fid)