diff --git a/movement/movement.c b/movement/movement.c index e904687..09ebf0c 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -211,15 +211,23 @@ void movement_move_to_next_face(void) { } void movement_schedule_background_task(watch_date_time date_time) { - watch_date_time now = watch_rtc_get_date_time(); - if (date_time.reg > now.reg) { - movement_state.has_scheduled_background_task = true; - scheduled_tasks[movement_state.current_watch_face].reg = date_time.reg; - } + movement_schedule_background_task_for_face(movement_state.current_watch_face, date_time); } void movement_cancel_background_task(void) { - scheduled_tasks[movement_state.current_watch_face].reg = 0; + movement_cancel_background_task_for_face(movement_state.current_watch_face); +} + +void movement_schedule_background_task_for_face(uint8_t watch_face_index, watch_date_time date_time) { + watch_date_time now = watch_rtc_get_date_time(); + if (date_time.reg > now.reg) { + movement_state.has_scheduled_background_task = true; + scheduled_tasks[watch_face_index].reg = date_time.reg; + } +} + +void movement_cancel_background_task_for_face(uint8_t watch_face_index) { + scheduled_tasks[watch_face_index].reg = 0; bool other_tasks_scheduled = false; for(uint8_t i = 0; i < MOVEMENT_NUM_FACES; i++) { if (scheduled_tasks[i].reg != 0) { diff --git a/movement/movement.h b/movement/movement.h index a013a86..79222e8 100644 --- a/movement/movement.h +++ b/movement/movement.h @@ -292,6 +292,10 @@ void movement_schedule_background_task(watch_date_time date_time); // movement will associate the scheduled task with the currently active face. void movement_cancel_background_task(void); +// these functions should work around the limitation of the above functions, which will be deprecated. +void movement_schedule_background_task_for_face(uint8_t watch_face_index, watch_date_time date_time); +void movement_cancel_background_task_for_face(uint8_t watch_face_index); + void movement_request_wake(void); void movement_play_signal(void);