movement: refactor timeout to tick first, then notify

This commit is contained in:
Joey Castillo 2021-11-07 00:29:27 -04:00
parent 0f03257ee9
commit ef40d58afc
2 changed files with 10 additions and 7 deletions

View file

@ -143,11 +143,6 @@ bool app_loop() {
} }
} }
// if we have timed out of our timeout countdown, give the app a hint that they can resign.
if (movement_state.timeout_ticks == 0) {
event.event_type = EVENT_TIMEOUT;
}
// handle background tasks, if the alarm handler told us we need to // handle background tasks, if the alarm handler told us we need to
if (movement_state.needs_background_tasks_handled) _movement_handle_background_tasks(); if (movement_state.needs_background_tasks_handled) _movement_handle_background_tasks();
@ -181,9 +176,18 @@ bool app_loop() {
event.subsecond = movement_state.subsecond; event.subsecond = movement_state.subsecond;
can_sleep = watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]); can_sleep = watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
event.event_type = EVENT_NONE; event.event_type = EVENT_NONE;
event.subsecond = 0;
} }
// if we have timed out of our timeout countdown, give the app a hint that they can resign.
if (movement_state.timeout_ticks == 0) {
event.event_type = EVENT_TIMEOUT;
event.subsecond = movement_state.subsecond;
watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
event.event_type = EVENT_NONE;
}
event.subsecond = 0;
return can_sleep && !movement_state.led_on; return can_sleep && !movement_state.led_on;
} }

View file

@ -28,7 +28,6 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting
switch (event.event_type) { switch (event.event_type) {
case EVENT_ACTIVATE: case EVENT_ACTIVATE:
case EVENT_TICK: case EVENT_TICK:
case EVENT_TIMEOUT:
case EVENT_LOW_ENERGY_UPDATE: case EVENT_LOW_ENERGY_UPDATE:
date_time = watch_rtc_get_date_time(); date_time = watch_rtc_get_date_time();
previous_date_time = *((uint32_t *)context); previous_date_time = *((uint32_t *)context);