world clock: fix glitch when exiting settings mode
This commit is contained in:
parent
405f010ade
commit
35172ce11a
@ -44,14 +44,11 @@ void world_clock_face_setup(movement_settings_t *settings, uint8_t watch_face_in
|
|||||||
}
|
}
|
||||||
|
|
||||||
void world_clock_face_activate(movement_settings_t *settings, void *context) {
|
void world_clock_face_activate(movement_settings_t *settings, void *context) {
|
||||||
|
(void) settings;
|
||||||
world_clock_state_t *state = (world_clock_state_t *)context;
|
world_clock_state_t *state = (world_clock_state_t *)context;
|
||||||
state->current_screen = 0;
|
state->current_screen = 0;
|
||||||
state->previous_date_time = 0xFFFFFFFF;
|
|
||||||
|
|
||||||
if (watch_tick_animation_is_running()) watch_stop_tick_animation();
|
if (watch_tick_animation_is_running()) watch_stop_tick_animation();
|
||||||
if (settings->bit.clock_mode_24h) watch_set_indicator(WATCH_INDICATOR_24H);
|
|
||||||
|
|
||||||
watch_set_colon();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool world_clock_face_do_display_mode(movement_event_t event, movement_settings_t *settings, world_clock_state_t *state) {
|
static bool world_clock_face_do_display_mode(movement_event_t event, movement_settings_t *settings, world_clock_state_t *state) {
|
||||||
@ -63,6 +60,10 @@ static bool world_clock_face_do_display_mode(movement_event_t event, movement_se
|
|||||||
watch_date_time date_time;
|
watch_date_time date_time;
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
|
if (settings->bit.clock_mode_24h) watch_set_indicator(WATCH_INDICATOR_24H);
|
||||||
|
watch_set_colon();
|
||||||
|
state->previous_date_time = 0xFFFFFFFF;
|
||||||
|
// fall through
|
||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
date_time = watch_rtc_get_date_time();
|
date_time = watch_rtc_get_date_time();
|
||||||
@ -140,9 +141,9 @@ static bool _world_clock_face_do_settings_mode(movement_event_t event, movement_
|
|||||||
if (state->current_screen > 3) {
|
if (state->current_screen > 3) {
|
||||||
movement_request_tick_frequency(1);
|
movement_request_tick_frequency(1);
|
||||||
state->current_screen = 0;
|
state->current_screen = 0;
|
||||||
state->previous_date_time = 0xFFFFFFFF;
|
|
||||||
if (state->backup_register) watch_store_backup_data(state->settings.reg, state->backup_register);
|
if (state->backup_register) watch_store_backup_data(state->settings.reg, state->backup_register);
|
||||||
world_clock_face_do_display_mode(event, settings, state);
|
event.event_type = EVENT_ACTIVATE;
|
||||||
|
return world_clock_face_do_display_mode(event, settings, state);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user