Skip to content

Commit

Permalink
faces/clock: clear segments if not in 024h mode
Browse files Browse the repository at this point in the history
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 <[email protected]>
GitHub-Issue: #476
  • Loading branch information
matheusmoreira committed Sep 16, 2024
1 parent 41e9273 commit 58e2a08
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion movement/watch_faces/clock/clock_face.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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));
}
}

Expand Down

0 comments on commit 58e2a08

Please sign in to comment.