countdown: use long press ALARM to enter settings

This commit is contained in:
joeycastillo 2024-09-28 21:33:05 -04:00
parent 4804b0bb38
commit b740ce8ada

View File

@ -239,17 +239,13 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
case EVENT_LIGHT_BUTTON_UP: case EVENT_LIGHT_BUTTON_UP:
switch(state->mode) { switch(state->mode) {
case cd_running: case cd_running:
case cd_reset:
movement_illuminate_led(); movement_illuminate_led();
break; break;
case cd_paused: case cd_paused:
reset(state); reset(state);
button_beep(settings); button_beep(settings);
break; break;
case cd_reset:
state->mode = cd_setting;
movement_request_tick_frequency(4);
button_beep(settings);
break;
case cd_setting: case cd_setting:
state->selection++; state->selection++;
if(state->selection >= CD_SELECTIONS) { if(state->selection >= CD_SELECTIONS) {
@ -286,18 +282,21 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
break; break;
case EVENT_ALARM_LONG_PRESS: case EVENT_ALARM_LONG_PRESS:
switch(state->mode) { switch(state->mode) {
case cd_reset:
// long press in reset mode enters settings
state->mode = cd_setting;
movement_request_tick_frequency(4);
button_beep(settings);
break;
case cd_setting: case cd_setting:
// long press in settings mode starts quick ticks for adjusting the time
quick_ticks_running = true; quick_ticks_running = true;
movement_request_tick_frequency(8); movement_request_tick_frequency(8);
break; break;
default: case cd_running:
// Toggle auto-repeat case cd_paused:
button_beep(settings); // do nothing
state->repeat = !state->repeat; break;
if(state->repeat)
watch_set_indicator(WATCH_INDICATOR_BELL);
else
watch_clear_indicator(WATCH_INDICATOR_BELL);
} }
break; break;
case EVENT_LIGHT_LONG_PRESS: case EVENT_LIGHT_LONG_PRESS:
@ -313,6 +312,14 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
state->seconds = 0; state->seconds = 0;
break; break;
} }
} else {
// Toggle auto-repeat
button_beep(settings);
state->repeat = !state->repeat;
if(state->repeat)
watch_set_indicator(WATCH_INDICATOR_BELL);
else
watch_clear_indicator(WATCH_INDICATOR_BELL);
} }
break; break;
case EVENT_ALARM_LONG_UP: case EVENT_ALARM_LONG_UP:
@ -326,8 +333,8 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
movement_move_to_face(0); movement_move_to_face(0);
break; break;
case EVENT_LOW_ENERGY_UPDATE: case EVENT_LOW_ENERGY_UPDATE:
// intentionally squelch the light default event; we only show the light when cd is running
case EVENT_LIGHT_BUTTON_DOWN: case EVENT_LIGHT_BUTTON_DOWN:
// intentionally squelch the light default event; we only show the light when cd is running or reset
break; break;
default: default:
movement_default_loop_handler(event, settings); movement_default_loop_handler(event, settings);