From b51f7b6f36a351480dd2ec783826436ecd6912fd Mon Sep 17 00:00:00 2001 From: James Haggerty Date: Wed, 19 Oct 2022 10:24:02 +1100 Subject: Long press of mode on home screen goes to settings This also changes the default rotation so you don't see the settings screens. --- movement/movement.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'movement/movement.c') diff --git a/movement/movement.c b/movement/movement.c index 8c58b202..558afc53 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -50,6 +50,11 @@ #include "alt_fw/deep_space_now.h" #endif +// Default to no secondary face behaviour. +#ifndef MOVEMENT_SECONDARY_FACE_INDEX +#define MOVEMENT_SECONDARY_FACE_INDEX MOVEMENT_NUM_FACES +#endif + #if __EMSCRIPTEN__ #include #endif @@ -203,7 +208,8 @@ void movement_move_to_face(uint8_t watch_face_index) { } void movement_move_to_next_face(void) { - movement_move_to_face((movement_state.current_watch_face + 1) % MOVEMENT_NUM_FACES); + uint16_t face_max = movement_state.current_watch_face < ((int16_t)MOVEMENT_SECONDARY_FACE_INDEX) ? MOVEMENT_SECONDARY_FACE_INDEX : MOVEMENT_NUM_FACES; + movement_move_to_face((movement_state.current_watch_face + 1) % face_max); } void movement_schedule_background_task(watch_date_time date_time) { @@ -409,14 +415,18 @@ bool app_loop(void) { can_sleep = watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]); // Long-pressing MODE brings one back to the first face, provided that the watch face hasn't decided to send them elsewhere - // (and we're not currently on the first face). + // (and we're not currently on the first face). If we're currently on the first face, a long press + // of MODE sends us to the secondary faces (if defined). // Note that it's the face's responsibility to provide some way to get to the next face, so if EVENT_MODE_BUTTON_* is // used for face functionality EVENT_MODE_LONG_PRESS should probably be handled and next_face() triggered in the face // (which would effectively disable the normal 'long press to face 0' behaviour). if (event.event_type == EVENT_MODE_LONG_PRESS - && movement_state.current_watch_face > 0 && !movement_state.watch_face_changed) { - movement_move_to_face(0); + if (movement_state.current_watch_face != 0) { + movement_move_to_face(0); + } else if (MOVEMENT_SECONDARY_FACE_INDEX != MOVEMENT_NUM_FACES) { + movement_move_to_face(MOVEMENT_SECONDARY_FACE_INDEX); + } } event.event_type = EVENT_NONE; } -- cgit v1.2.3 From 46ac8defdc94c1a998e553d880a542a1de7fd192 Mon Sep 17 00:00:00 2001 From: joeycastillo Date: Sun, 23 Oct 2022 14:59:03 -0500 Subject: disable settings hiding by default --- movement/movement.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'movement/movement.c') diff --git a/movement/movement.c b/movement/movement.c index 558afc53..7066df62 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -52,7 +52,7 @@ // Default to no secondary face behaviour. #ifndef MOVEMENT_SECONDARY_FACE_INDEX -#define MOVEMENT_SECONDARY_FACE_INDEX MOVEMENT_NUM_FACES +#define MOVEMENT_SECONDARY_FACE_INDEX 0 #endif #if __EMSCRIPTEN__ @@ -208,7 +208,11 @@ void movement_move_to_face(uint8_t watch_face_index) { } void movement_move_to_next_face(void) { - uint16_t face_max = movement_state.current_watch_face < ((int16_t)MOVEMENT_SECONDARY_FACE_INDEX) ? MOVEMENT_SECONDARY_FACE_INDEX : MOVEMENT_NUM_FACES; +#if MOVEMENT_SECONDARY_FACE_INDEX + uint16_t face_max = (movement_state.current_watch_face < (int16_t)MOVEMENT_SECONDARY_FACE_INDEX) ? MOVEMENT_SECONDARY_FACE_INDEX : MOVEMENT_NUM_FACES; +#else + uint16_t face_max = MOVEMENT_NUM_FACES; +#endif movement_move_to_face((movement_state.current_watch_face + 1) % face_max); } @@ -424,7 +428,7 @@ bool app_loop(void) { && !movement_state.watch_face_changed) { if (movement_state.current_watch_face != 0) { movement_move_to_face(0); - } else if (MOVEMENT_SECONDARY_FACE_INDEX != MOVEMENT_NUM_FACES) { + } else if (MOVEMENT_SECONDARY_FACE_INDEX) { movement_move_to_face(MOVEMENT_SECONDARY_FACE_INDEX); } } -- cgit v1.2.3 From 5c1e7170341e30532ea0a41230480881bffd2cd4 Mon Sep 17 00:00:00 2001 From: joeycastillo Date: Sun, 23 Oct 2022 15:05:28 -0500 Subject: make this an if/then to please emscripten --- movement/movement.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'movement/movement.c') diff --git a/movement/movement.c b/movement/movement.c index 7066df62..a464313e 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -208,11 +208,12 @@ void movement_move_to_face(uint8_t watch_face_index) { } void movement_move_to_next_face(void) { -#if MOVEMENT_SECONDARY_FACE_INDEX - uint16_t face_max = (movement_state.current_watch_face < (int16_t)MOVEMENT_SECONDARY_FACE_INDEX) ? MOVEMENT_SECONDARY_FACE_INDEX : MOVEMENT_NUM_FACES; -#else - uint16_t face_max = MOVEMENT_NUM_FACES; -#endif + uint16_t face_max; + if (MOVEMENT_SECONDARY_FACE_INDEX) { + face_max = (movement_state.current_watch_face < (int16_t)MOVEMENT_SECONDARY_FACE_INDEX) ? MOVEMENT_SECONDARY_FACE_INDEX : MOVEMENT_NUM_FACES; + } else { + face_max = MOVEMENT_NUM_FACES; + } movement_move_to_face((movement_state.current_watch_face + 1) % face_max); } -- cgit v1.2.3