allow watch faces to schedule tasks from background

This commit is contained in:
joeycastillo 2022-10-22 13:16:46 -05:00
parent 86f34b3653
commit b56c60868e
2 changed files with 18 additions and 6 deletions

View file

@ -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) {

View file

@ -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);