From e0a429aabe927f64596561e3dc663536135ece9d Mon Sep 17 00:00:00 2001 From: Stephan <99481666+stephan242@users.noreply.github.com> Date: Sat, 4 Apr 2026 22:29:00 +0100 Subject: [PATCH 1/2] fix(settings_face): Off by one if Low Energy Mode forbidden --- watch-faces/settings/settings_face.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/watch-faces/settings/settings_face.c b/watch-faces/settings/settings_face.c index 73bdadc1..a0f1e45d 100644 --- a/watch-faces/settings/settings_face.c +++ b/watch-faces/settings/settings_face.c @@ -293,7 +293,10 @@ void settings_face_setup(uint8_t watch_face_index, void ** context_ptr) { settings_state_t *state = (settings_state_t *)*context_ptr; int8_t current_setting = 0; - state->num_settings = 7; // baseline, without LED settings + state->num_settings = 6; // baseline, without LED settings +#ifndef MOVEMENT_LOW_ENERGY_MODE_FORBIDDEN + state->num_settings++; +#endif #ifdef BUILD_GIT_HASH state->num_settings++; #endif From 546097dc942a7500aea120e3aeeee84528e0b73d Mon Sep 17 00:00:00 2001 From: Stephan <99481666+stephan242@users.noreply.github.com> Date: Sat, 4 Apr 2026 23:38:44 +0100 Subject: [PATCH 2/2] fix: Handle inactivity timeout better in case LE is Never --- movement.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/movement.c b/movement.c index f0fb9609..f74b109d 100644 --- a/movement.c +++ b/movement.c @@ -257,11 +257,15 @@ static inline void _movement_reset_inactivity_countdown(void) { movement_volatile_state.enter_sleep_mode = false; - watch_rtc_register_comp_callback_no_schedule( - cb_sleep_timeout_interrupt, - counter + movement_le_inactivity_deadlines[movement_state.settings.bit.le_interval] * freq, - SLEEP_TIMEOUT - ); + if (movement_state.settings.bit.le_interval == 0) { + watch_rtc_disable_comp_callback_no_schedule(SLEEP_TIMEOUT); + } else { + watch_rtc_register_comp_callback_no_schedule( + cb_sleep_timeout_interrupt, + counter + movement_le_inactivity_deadlines[movement_state.settings.bit.le_interval] * freq, + SLEEP_TIMEOUT + ); + } movement_volatile_state.schedule_next_comp = true; }