From 3c92b61cfaf4b716205aef9d12d0f262c181d1a8 Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Thu, 11 Feb 2021 02:56:40 +0100 Subject: [PATCH] Require a wakeup touch when backlight is off --- src/hasp/hasp.cpp | 7 +++++++ src/hasp/hasp.h | 1 + src/hasp/hasp_object.cpp | 8 ++++++-- src/hasp_gui.cpp | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/hasp/hasp.cpp b/src/hasp/hasp.cpp index 63ec7332..50008358 100644 --- a/src/hasp/hasp.cpp +++ b/src/hasp/hasp.cpp @@ -127,6 +127,13 @@ bool hasp_update_sleep_state() return (hasp_sleep_state != HASP_SLEEP_OFF); } +void hasp_enable_wakeup_touch() +{ + LOG_VERBOSE(TAG_HASP,F("Wakeup touch enabled")); + lv_obj_set_click(lv_disp_get_layer_sys(NULL), true); // enable first touch + lv_obj_set_event_cb(lv_disp_get_layer_sys(NULL), wakeup_event_handler); +} + /** * Return the sleep times */ diff --git a/src/hasp/hasp.h b/src/hasp/hasp.h index ee7c13c1..edc5512b 100644 --- a/src/hasp/hasp.h +++ b/src/hasp/hasp.h @@ -73,6 +73,7 @@ lv_font_t * hasp_get_font(uint8_t fontid); bool hasp_update_sleep_state(); void hasp_get_sleep_time(uint16_t & short_time, uint16_t & long_time); void hasp_set_sleep_time(uint16_t short_time, uint16_t long_time); +void hasp_enable_wakeup_touch(); /********************** * MACROS diff --git a/src/hasp/hasp_object.cpp b/src/hasp/hasp_object.cpp index 34f369f7..82a25a0d 100644 --- a/src/hasp/hasp_object.cpp +++ b/src/hasp/hasp_object.cpp @@ -348,8 +348,12 @@ void generic_event_handler(lv_obj_t * obj, lv_event_t event) void wakeup_event_handler(lv_obj_t * obj, lv_event_t event) { if(obj == lv_disp_get_layer_sys(NULL)) { - hasp_update_sleep_state(); // wakeup? - lv_obj_set_click(obj, false); // disable fist click + hasp_update_sleep_state(); // wakeup? + + if(event == LV_EVENT_CLICKED) { + lv_obj_set_click(obj, false); // disable first touch + LOG_VERBOSE(TAG_HASP, F("Wakeup touch disabled")); + } } } diff --git a/src/hasp_gui.cpp b/src/hasp_gui.cpp index 37cb4ce3..6fd4af36 100644 --- a/src/hasp_gui.cpp +++ b/src/hasp_gui.cpp @@ -448,6 +448,8 @@ void guiSetBacklight(bool lighton) { guiBacklightIsOn = lighton; +if(!lighton) hasp_enable_wakeup_touch(); + if(guiBacklightPin >= 0) { #if defined(ARDUINO_ARCH_ESP32)