diff --git a/src/c/main.c b/src/c/main.c index 58a9b8b..cbf2051 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -260,10 +260,16 @@ static void inbox_received_handler(DictionaryIterator *iter, void *context) { // handle alarm reset requests if (dict_find(iter, MESSAGE_KEY_PKJS_ALARM_RESET)) { + wakeup_service_subscribe(NULL); the_time.HourWIP = 0; the_time.MinuteWIP = 0; s_alarm_reason = WAKE_ALARM; - schedule_alarm(WAKE_ALARM); + if (!schedule_alarm(WAKE_ALARM)) { + return; // leave the failure status window visible + } + persist_write_int(STORAGE_KEY_ALARM_HOUR, the_time.HourSet); + persist_write_int(STORAGE_KEY_ALARM_MINUTE, the_time.MinuteSet); + window_stack_pop_all(true); return; }