Page carousel navigation with long-press jumps #60

Open
opened 2026-08-31 17:55:58 +02:00 by robert · 0 comments
robert commented 2026-08-31 17:55:58 +02:00 (Migrated from git.butzei.de)

Goal

A single flat ring of pages, wrapping at both ends, with two shortcuts so nothing is more than two presses away.

Acceptance criteria

  • Up and Down move to the previous and next enabled page, wrapping at both ends
  • Long Up jumps to page 1; long Down jumps to the map
  • Select starts and pauses; long Select stops with confirmation; Back exits with confirmation while riding
  • Navigation page inserts itself into the ring only when a route is loaded
  • Disabled and auto-hidden pages are skipped without a visible flicker
  • Current page persisted across app restarts
  • Long-press does not also fire the short-press action
  • Buttons stay responsive while map frames are arriving

Files

  • watchapp/src/c/main.c
  • watchapp/src/c/carousel.c

Notes

See docs/DESIGN.md section 5. Chosen over a Back-toggles-groups model because Back not going back is surprising on Pebble and risks accidental exits.

## Goal A single flat ring of pages, wrapping at both ends, with two shortcuts so nothing is more than two presses away. ## Acceptance criteria - [ ] Up and Down move to the previous and next enabled page, wrapping at both ends - [ ] **Long Up jumps to page 1**; **long Down jumps to the map** - [ ] Select starts and pauses; long Select stops with confirmation; Back exits with confirmation while riding - [ ] Navigation page inserts itself into the ring only when a route is loaded - [ ] Disabled and auto-hidden pages are skipped without a visible flicker - [ ] Current page persisted across app restarts - [ ] Long-press does not also fire the short-press action - [ ] Buttons stay responsive while map frames are arriving ## Files - `watchapp/src/c/main.c` - `watchapp/src/c/carousel.c` ## Notes See docs/DESIGN.md section 5. Chosen over a Back-toggles-groups model because Back not going back is surprising on Pebble and risks accidental exits.
Sign in to join this conversation.
No description provided.