]> git.earman.xyz Git - sensor-watch.git/commitdiff
faces/clock: clear segments if not in 024h mode
authorMatheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Mon, 16 Sep 2024 18:34:19 +0000 (15:34 -0300)
committerMatheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Mon, 16 Sep 2024 18:54:09 +0000 (15:54 -0300)
There was an issue where the clock's display would remain in 024h mode
even after switching back to 12h/24h mode because it only took into
account the leading zero bit, whose value is meaningless unless the
24h mode bit is also set.

The issue is fixed by taking both bits into account.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476

movement/watch_faces/clock/clock_face.c

index 21d790f9162b420b976dff8e0fb59e4fc295af3a..d51789794bc7e4ba053a13a556f9e63b8eb22bd8 100644 (file)
@@ -60,6 +60,10 @@ static bool clock_is_in_24h_mode(movement_settings_t *settings) {
 #endif
 }
 
+static bool clock_should_set_leading_zero(movement_settings_t *settings) {
+    return clock_is_in_24h_mode(settings) && settings->bit.clock_24h_leading_zero;
+}
+
 static void clock_indicate(WatchIndicatorSegment indicator, bool on) {
     if (on) {
         watch_set_indicator(indicator);
@@ -180,7 +184,7 @@ static void clock_display_clock(movement_settings_t *settings, clock_state_t *cl
             clock_indicate_pm(settings, current);
             current = clock_24h_to_12h(current);
         }
-        clock_display_all(current, settings->bit.clock_24h_leading_zero);
+        clock_display_all(current, clock_should_set_leading_zero(settings));
     }
 }