From a457bbfa8f5c2f70547cade9823b106dcbb31c0e Mon Sep 17 00:00:00 2001 From: Arian Date: Sun, 14 Nov 2021 13:41:08 +0100 Subject: [PATCH] sm6150-common: fingerprint: Disable fod_status on fod_ui changes onFingerUp is not called when the finger is kept at the fod area after it was accepted, which leads to cases where fod_status stays enabled. Change-Id: I95da8e12d5cac83dafdfcca286fb4145396a154b --- fingerprint/BiometricsFingerprint.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fingerprint/BiometricsFingerprint.cpp b/fingerprint/BiometricsFingerprint.cpp index 0397158..60041e6 100644 --- a/fingerprint/BiometricsFingerprint.cpp +++ b/fingerprint/BiometricsFingerprint.cpp @@ -102,7 +102,13 @@ BiometricsFingerprint::BiometricsFingerprint() : mClientCallback(nullptr), mDevi continue; } - mDevice->extCmd(mDevice, COMMAND_NIT, readBool(fd) ? PARAM_NIT_FOD : PARAM_NIT_NONE); + bool fingerDown = readBool(fd); + ALOGI("fod_ui status: %d", fingerDown); + mDevice->extCmd(mDevice, COMMAND_NIT, fingerDown ? PARAM_NIT_FOD : PARAM_NIT_NONE); + if (!fingerDown) { + int arg[2] = {Touch_Fod_Enable, FOD_STATUS_OFF}; + ioctl(touch_fd_.get(), TOUCH_IOC_SETMODE, &arg); + } } }).detach(); #endif @@ -490,10 +496,6 @@ Return BiometricsFingerprint::onFingerDown(uint32_t /* x */, uint32_t /* y * previously caused a "finger down" event will be reported. */ Return BiometricsFingerprint::onFingerUp() { -#ifdef ENABLE_UDFPS - int arg[2] = {Touch_Fod_Enable, FOD_STATUS_OFF}; - ioctl(touch_fd_.get(), TOUCH_IOC_SETMODE, &arg); -#endif return Void(); }