From 1112a368065b9387598af1e39e2f9b5237cab183 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Thu, 26 Mar 2026 20:31:41 +0100 Subject: [PATCH] Review comments --- lib/hal/HalClock.h | 2 +- .../settings/ClockSettingsActivity.cpp | 10 ++++++++++ .../settings/DetectTimezoneActivity.cpp | 16 +++++++++++----- src/activities/settings/SettingsActivity.cpp | 8 -------- .../settings/StatusBarSettingsActivity.cpp | 4 ++-- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/lib/hal/HalClock.h b/lib/hal/HalClock.h index 05cc3101..63428116 100644 --- a/lib/hal/HalClock.h +++ b/lib/hal/HalClock.h @@ -19,7 +19,7 @@ /// Usage: /// 1. On boot, call `restore()` to seed the system clock from the best /// available source (RTC memory + LP correction > NVS). -/// 2. After a successful NTP sync, call `onNtpSynced()`. +/// 2. After a successful NTP sync, call `syncNtp()`. /// 3. Before entering deep sleep, call `saveBeforeSleep()`. /// /// `now()` returns the best-effort epoch (0 if never synced). diff --git a/src/activities/settings/ClockSettingsActivity.cpp b/src/activities/settings/ClockSettingsActivity.cpp index 21aab09a..b79a7bc8 100644 --- a/src/activities/settings/ClockSettingsActivity.cpp +++ b/src/activities/settings/ClockSettingsActivity.cpp @@ -52,6 +52,16 @@ void ClockSettingsActivity::loop() { selectedIndex = ButtonNavigator::previousIndex(selectedIndex, MENU_ITEMS); requestUpdate(); }); + + buttonNavigator.onNextContinuous([this] { + selectedIndex = ButtonNavigator::nextIndex(selectedIndex, MENU_ITEMS); + requestUpdate(); + }); + + buttonNavigator.onPreviousContinuous([this] { + selectedIndex = ButtonNavigator::previousIndex(selectedIndex, MENU_ITEMS); + requestUpdate(); + }); } void ClockSettingsActivity::handleSelection() { diff --git a/src/activities/settings/DetectTimezoneActivity.cpp b/src/activities/settings/DetectTimezoneActivity.cpp index 0052913b..a969616d 100644 --- a/src/activities/settings/DetectTimezoneActivity.cpp +++ b/src/activities/settings/DetectTimezoneActivity.cpp @@ -33,14 +33,14 @@ bool mapIanaTimezone(const std::string& tz, uint8_t& outSetting) { outSetting = TZ::TZ_EET; return true; } - if (tz.rfind("Europe/", 0) == 0) { - outSetting = TZ::TZ_CET; - return true; - } if (tz == "Europe/Moscow") { outSetting = TZ::TZ_MSK; return true; } + if (tz.rfind("Europe/", 0) == 0) { + outSetting = TZ::TZ_CET; + return true; + } if (tz == "America/New_York" || tz == "America/Toronto") { outSetting = TZ::TZ_EST; return true; @@ -136,7 +136,7 @@ bool detectTimezoneSetting(uint8_t& outSetting, std::string& outIana, bool& outD } } - if (payload.empty() && !fetchTimezonePayload("http://ip-api.com/json/?fields=timezone,dst", payload)) { + if (payload.empty() && !fetchTimezonePayload("https://ip-api.com/json/?fields=timezone,dst", payload)) { LOG_ERR("CLK", "Timezone detect failed: fetch error"); return false; } @@ -266,6 +266,12 @@ void DetectTimezoneActivity::render(RenderLock&&) { renderer.clearScreen(); GUI.drawHeader(renderer, Rect{0, metrics.topPadding, pageWidth, metrics.headerHeight}, tr(STR_DETECT_TIMEZONE)); + if (state == CONNECTING) { + renderer.drawCenteredText(UI_10_FONT_ID, pageHeight / 2, tr(STR_CONNECTING), true, EpdFontFamily::BOLD); + renderer.displayBuffer(); + return; + } + if (state == DETECTING) { renderer.drawCenteredText(UI_10_FONT_ID, pageHeight / 2, tr(STR_DETECTING_TIMEZONE), true, EpdFontFamily::BOLD); renderer.displayBuffer(); diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index d0be195a..64e755b0 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -220,14 +220,6 @@ void SettingsActivity::toggleCurrentSetting() { return; } - if (setting.nameId == StrId::STR_TIMEZONE) { - HalClock::applyTimezone(SETTINGS.timeZone); - } - - if (setting.nameId == StrId::STR_USE_CLOCK && !SETTINGS.useClock) { - SETTINGS.statusBarClock = 0; - } - SETTINGS.saveToFile(); } diff --git a/src/activities/settings/StatusBarSettingsActivity.cpp b/src/activities/settings/StatusBarSettingsActivity.cpp index 990a47b8..7e5ab68c 100644 --- a/src/activities/settings/StatusBarSettingsActivity.cpp +++ b/src/activities/settings/StatusBarSettingsActivity.cpp @@ -37,8 +37,8 @@ const int verticalPreviewTextPadding = 40; void StatusBarSettingsActivity::onEnter() { Activity::onEnter(); - selectedIndex = 0; - if (!SETTINGS.useClock && selectedIndex >= MENU_ITEMS - 1) { + const int menuCount = SETTINGS.useClock ? MENU_ITEMS : MENU_ITEMS - 1; + if (selectedIndex >= menuCount) { selectedIndex = 0; }