From 3596ad558d8f57fd235c7262c2aa0f93365bbaf0 Mon Sep 17 00:00:00 2001 From: pelgraine <140762863+pelgraine@users.noreply.github.com> Date: Thu, 7 May 2026 17:57:19 +1000 Subject: [PATCH] Fix missing data store persistence updates - font style, scope name and corresponding scope key - now sticks across reboots. Revised tdpro home ui offset to original settings. Fixed tpro hibernate icon positioning. --- examples/companion_radio/DataStore.cpp | 13 +++++++++++++ examples/companion_radio/ui-new/UITask.cpp | 12 ++++++------ variants/lilygo_tdeck_pro/platformio.ini | 4 ++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/examples/companion_radio/DataStore.cpp b/examples/companion_radio/DataStore.cpp index 75bd22f7..b3a5c13d 100644 --- a/examples/companion_radio/DataStore.cpp +++ b/examples/companion_radio/DataStore.cpp @@ -280,12 +280,22 @@ void DataStore::loadPrefsInt(const char *filename, NodePrefs& _prefs, double& no if (file.read((uint8_t *)&_prefs.rx_fail_reboot_threshold, sizeof(_prefs.rx_fail_reboot_threshold)) != sizeof(_prefs.rx_fail_reboot_threshold)) { _prefs.rx_fail_reboot_threshold = 3; // default: 3 } + if (file.read((uint8_t *)&_prefs.ui_font_style, sizeof(_prefs.ui_font_style)) != sizeof(_prefs.ui_font_style)) { + _prefs.ui_font_style = 0; // default: Classic (FreeSans) + } + if (file.read((uint8_t *)_prefs.default_scope_name, sizeof(_prefs.default_scope_name)) != sizeof(_prefs.default_scope_name)) { + memset(_prefs.default_scope_name, 0, sizeof(_prefs.default_scope_name)); + } + if (file.read((uint8_t *)_prefs.default_scope_key, sizeof(_prefs.default_scope_key)) != sizeof(_prefs.default_scope_key)) { + memset(_prefs.default_scope_key, 0, sizeof(_prefs.default_scope_key)); + } // Clamp to valid ranges if (_prefs.dark_mode > 1) _prefs.dark_mode = 0; if (_prefs.portrait_mode > 1) _prefs.portrait_mode = 0; if (_prefs.hint_shown > 1) _prefs.hint_shown = 0; if (_prefs.large_font > 1) _prefs.large_font = 0; + if (_prefs.ui_font_style > 2) _prefs.ui_font_style = 0; if (_prefs.tx_fail_reset_threshold > 10) _prefs.tx_fail_reset_threshold = 3; if (_prefs.rx_fail_reboot_threshold > 10) _prefs.rx_fail_reboot_threshold = 3; // auto_lock_minutes: only accept known options (0, 2, 5, 10, 15, 30) @@ -344,6 +354,9 @@ void DataStore::savePrefs(const NodePrefs& _prefs, double node_lat, double node_ file.write((uint8_t *)&_prefs.large_font, sizeof(_prefs.large_font)); // 102 file.write((uint8_t *)&_prefs.tx_fail_reset_threshold, sizeof(_prefs.tx_fail_reset_threshold)); // 103 file.write((uint8_t *)&_prefs.rx_fail_reboot_threshold, sizeof(_prefs.rx_fail_reboot_threshold)); // 104 + file.write((uint8_t *)&_prefs.ui_font_style, sizeof(_prefs.ui_font_style)); // 105 + file.write((uint8_t *)_prefs.default_scope_name, sizeof(_prefs.default_scope_name)); // 106 + file.write((uint8_t *)_prefs.default_scope_key, sizeof(_prefs.default_scope_key)); // 137 file.close(); } diff --git a/examples/companion_radio/ui-new/UITask.cpp b/examples/companion_radio/ui-new/UITask.cpp index 2252a126..ac335f53 100644 --- a/examples/companion_radio/ui-new/UITask.cpp +++ b/examples/companion_radio/ui-new/UITask.cpp @@ -1039,15 +1039,15 @@ public: #if defined(LilyGo_T5S3_EPaper_Pro) display.drawXbm((display.width() - 32) / 2, 28, power_icon, 32, 32); #else - display.drawXbm((display.width() - 32) / 2, 10, power_icon, 32, 32); + display.drawXbm((display.width() - 32) / 2, 20, power_icon, 32, 32); #endif #if defined(LilyGo_T5S3_EPaper_Pro) display.drawTextCentered(display.width() / 2, 64, "power off device?"); display.drawTextCentered(display.width() / 2, 76, "usb-c to wake"); #else - display.drawTextCentered(display.width() / 2, 50, "power off device?"); - display.drawTextCentered(display.width() / 2, 60, "usb-c to wake"); - display.drawTextCentered(display.width() / 2, 76, "Enter:yes q:no"); + display.drawTextCentered(display.width() / 2, 56, "power off device?"); + display.drawTextCentered(display.width() / 2, 66, "usb-c to wake"); + display.drawTextCentered(display.width() / 2, 82, "Enter:yes q:no"); #endif } else { // Menu: hibernate / power off @@ -1055,8 +1055,8 @@ public: display.drawXbm((display.width() - 32) / 2, 20, power_icon, 32, 32); const int y1 = 58, y2 = 70; #else - display.drawXbm((display.width() - 32) / 2, 10, power_icon, 32, 32); - const int y1 = 50, y2 = 62; + display.drawXbm((display.width() - 32) / 2, 20, power_icon, 32, 32); + const int y1 = 56, y2 = 68; #endif char line1[48], line2[48]; #if defined(LilyGo_TDeck_Pro) diff --git a/variants/lilygo_tdeck_pro/platformio.ini b/variants/lilygo_tdeck_pro/platformio.ini index 8ed31c8b..af121920 100644 --- a/variants/lilygo_tdeck_pro/platformio.ini +++ b/variants/lilygo_tdeck_pro/platformio.ini @@ -72,8 +72,8 @@ build_flags = -D EINK_ROTATION=0 -D EINK_SCALE_X=1.875f -D EINK_SCALE_Y=2.5f - -D EINK_X_OFFSET=2 - -D EINK_Y_OFFSET=4 + -D EINK_X_OFFSET=0 + -D EINK_Y_OFFSET=5 -D PIN_DISPLAY_CS=34 -D PIN_DISPLAY_DC=35 -D PIN_DISPLAY_RST=16