sm7125: fod: Boost screen brightness instead of dimming it

*Instead of dimming the screen when the sensor is pressed we should boost the brightness for better results

*This also makes fingerprint work even when the screen brightness is at its minimum

*Implement a 120ms delay to wait for the brightness to be boosted

Change-Id: I23ff521c289347b4b1c92a11049c7a9670d3d819
fourteen-wip
Simon1511 3 years ago
parent 1a004c09f8
commit 565d3134e3
  1. 22
      fod/FingerprintInscreen.cpp

@ -26,7 +26,6 @@
#define FINGERPRINT_ACQUIRED_VENDOR 6
#define TSP_CMD_PATH "/sys/class/sec/tsp/cmd"
#define BRIGHTNESS_PATH "/sys/class/backlight/panel0-backlight/brightness"
#define SEM_FINGER_STATE 22
#define SEM_PARAM_PRESSED 2
@ -72,8 +71,6 @@ static hidl_vec<int8_t> stringToVec(const std::string& str) {
FingerprintInscreen::FingerprintInscreen() {
mSehBiometricsFingerprintService = ISehBiometricsFingerprint::getService();
set(TSP_CMD_PATH, "set_fod_rect,421,2018,659,2256");
mPreviousBrightness = get<std::string>(BRIGHTNESS_PATH, "");
set(BRIGHTNESS_PATH, "319");
set(TSP_CMD_PATH, "fod_enable,1,1,0");
}
@ -90,8 +87,11 @@ Return<void> FingerprintInscreen::onFinishEnroll() {
}
Return<void> FingerprintInscreen::onPress() {
mSehBiometricsFingerprintService->sehRequest(SEM_FINGER_STATE,
SEM_PARAM_PRESSED, stringToVec(SEM_AOSP_FQNAME), FingerprintInscreen::requestResult);
std::thread([this]() {
std::this_thread::sleep_for(std::chrono::milliseconds(120));
mSehBiometricsFingerprintService->sehRequest(SEM_FINGER_STATE,
SEM_PARAM_PRESSED, stringToVec(SEM_AOSP_FQNAME), FingerprintInscreen::requestResult);
}).detach();
return Void();
}
@ -99,10 +99,6 @@ Return<void> FingerprintInscreen::onRelease() {
mSehBiometricsFingerprintService->sehRequest(SEM_FINGER_STATE,
SEM_PARAM_RELEASED, stringToVec(SEM_AOSP_FQNAME), FingerprintInscreen::requestResult);
set(TSP_CMD_PATH, "fod_enable,0");
if (!mPreviousBrightness.empty()) {
set(BRIGHTNESS_PATH, mPreviousBrightness);
mPreviousBrightness = "";
}
return Void();
}
@ -112,10 +108,6 @@ Return<void> FingerprintInscreen::onShowFODView() {
Return<void> FingerprintInscreen::onHideFODView() {
set(TSP_CMD_PATH, "fod_enable,0");
if (!mPreviousBrightness.empty()) {
set(BRIGHTNESS_PATH, mPreviousBrightness);
mPreviousBrightness = "";
}
return Void();
}
@ -153,11 +145,11 @@ Return<void> FingerprintInscreen::setLongPressEnabled(bool) {
}
Return<int32_t> FingerprintInscreen::getDimAmount(int32_t cur_brightness) {
return (int32_t)(255 + ( -40.9291 * pow((double) cur_brightness, 0.3)));
return 0;
}
Return<bool> FingerprintInscreen::shouldBoostBrightness() {
return false;
return true;
}
Return<void> FingerprintInscreen::setCallback(const sp<IFingerprintInscreenCallback>& callback) {

Loading…
Cancel
Save