From 0ce110df9efc65d49794f78805393ca5753beb39 Mon Sep 17 00:00:00 2001 From: proddy Date: Mon, 4 Aug 2025 17:36:30 +0200 Subject: [PATCH] add back factory reset after long button press - we missed in pull/1969 --- src/core/system.cpp | 11 +++++++---- src/core/system.h | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/core/system.cpp b/src/core/system.cpp index 559905a01..2ddbf226f 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -512,13 +512,16 @@ void System::button_OnDblClick(PButton & b) { // button long press void System::button_OnLongPress(PButton & b) { - LOG_NOTICE("Button pressed - long press - restart from factory/boot partition"); - EMSESP::system_.system_restart("boot"); // this is default when first installed. it may contain the bootloader code. + LOG_NOTICE("Button pressed - long press - perform factory reset"); +#ifndef EMSESP_STANDALONE + System::command_format(nullptr, 0); +#endif } // button indefinite press - do nothing for now void System::button_OnVLongPress(PButton & b) { - LOG_NOTICE("Button pressed - very long press"); + LOG_NOTICE("Button pressed - very long press - restart from factory/boot partition"); + EMSESP::system_.system_restart("boot"); } // push button @@ -1920,7 +1923,7 @@ bool System::load_board_profile(std::vector & data, const std::string & return true; } -// format command - factory reset, removing all config fi`les +// format command - factory reset, removing all config files bool System::command_format(const char * value, const int8_t id) { LOG_INFO("Removing all config files"); #ifndef EMSESP_STANDALONE diff --git a/src/core/system.h b/src/core/system.h index 96daa20eb..8431e697a 100644 --- a/src/core/system.h +++ b/src/core/system.h @@ -351,10 +351,10 @@ class System { static void button_OnDblClick(PButton & b); static void button_OnLongPress(PButton & b); static void button_OnVLongPress(PButton & b); - static constexpr uint32_t BUTTON_Debounce = 40; // Debounce period to prevent flickering when pressing or releasing the button (in ms) - static constexpr uint32_t BUTTON_DblClickDelay = 250; // Max period between clicks for a double click event (in ms) - static constexpr uint32_t BUTTON_LongPressDelay = 750; // Hold period for a long press event (in ms) - static constexpr uint32_t BUTTON_VLongPressDelay = 9000; // Hold period for a very long press event (in ms) + static constexpr uint32_t BUTTON_Debounce = 40; // Debounce period to prevent flickering when pressing or releasing the button (in ms) + static constexpr uint32_t BUTTON_DblClickDelay = 250; // Max period between clicks for a double click event (in ms) + static constexpr uint32_t BUTTON_LongPressDelay = 9500; // Hold period for a long press event (in ms) - 10 seconds + static constexpr uint32_t BUTTON_VLongPressDelay = 20000; // Hold period for a very long press event (in ms) - 20 seconds // healthcheck #ifdef EMSESP_PINGTEST