]> git.earman.xyz Git - sensor-watch.git/commitdiff
countdown: use long press ALARM to enter settings
authorjoeycastillo <joeycastillo@utexas.edu>
Sun, 29 Sep 2024 01:33:05 +0000 (21:33 -0400)
committerjoeycastillo <joeycastillo@utexas.edu>
Sun, 29 Sep 2024 01:33:05 +0000 (21:33 -0400)
watch-faces/complication/countdown_face.c

index ac7b2d24b145ab424613edf1c5afa0a78b1aeeb1..9a51c37b8e7195d2dec6eb893f652a5847757cef 100644 (file)
@@ -239,17 +239,13 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
         case EVENT_LIGHT_BUTTON_UP:
             switch(state->mode) {
                 case cd_running:
+                case cd_reset:
                     movement_illuminate_led();
                     break;
                 case cd_paused:
                     reset(state);
                     button_beep(settings);
                     break;
-                case cd_reset:
-                    state->mode = cd_setting;
-                    movement_request_tick_frequency(4);
-                    button_beep(settings);
-                    break;
                 case cd_setting:
                     state->selection++;
                     if(state->selection >= CD_SELECTIONS) {
@@ -286,18 +282,21 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
             break;
         case EVENT_ALARM_LONG_PRESS:
             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:
+                    // long press in settings mode starts quick ticks for adjusting the time
                     quick_ticks_running = true;
                     movement_request_tick_frequency(8);
                     break;
-                default:
-                    // 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);
+                case cd_running:
+                case cd_paused:
+                    // do nothing
+                    break;
             }
             break;
         case EVENT_LIGHT_LONG_PRESS:
@@ -313,6 +312,14 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
                         state->seconds = 0;
                         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;
         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);
             break;
         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:
+            // intentionally squelch the light default event; we only show the light when cd is running or reset
             break;
         default:
             movement_default_loop_handler(event, settings);