Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0b78348 authored by Lukas0610's avatar Lukas0610 Committed by Lukasz Patron
Browse files

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
parent 5869cd35
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -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)