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
This commit is contained in:
Arian 2021-11-14 13:41:08 +01:00
parent bd7d6d7d59
commit a457bbfa8f

View File

@ -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<void> BiometricsFingerprint::onFingerDown(uint32_t /* x */, uint32_t /* y
* previously caused a "finger down" event will be reported.
*/
Return<void> 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();
}