Skip to content

apps/workout: redesign selection, tracking and heart rate history - #2037

Draft
gmarull wants to merge 2 commits into
coredevices:mainfrom
teslabs:workout-redesign
Draft

gmarull wants to merge 2 commits into
coredevices:mainfrom
teslabs:workout-redesign

Conversation

@gmarull

@gmarull gmarull commented Sep 7, 2026

Copy link
Copy Markdown
Member

Workout now opens on a Run / Walk / Workout picker and carries the selected activity’s color, name and icon through tracking and completion. The redesign uses native Pebble fonts and resources, with colors drawn from Weather.

  • Horizontal icon transitions and selection markers; a short icon exit, pulsing 3–2–1 countdown, and circle-to-header transition. Back or a right swipe cancels the countdown.
  • Elapsed time, average cadence, average speed and HR pages, with distance, pace, steps, estimated active calories and average HR where applicable. Active values update once per second.
  • Touch and button navigation, a Select half-ball indicator, and touchable sidebars for pause/resume and end confirmation. Completion preserves a browsable recap.
  • On the HR page, swipe up or press Down for the last minute’s history. The plot uses rounded automatic min/max bounds, equal side margins and gaps for missing readings. Swipe down or press Up returns to zones; left/right continues switching metric pages. Pausing freezes history and completion retains it.

Recording

Captioned MP4 (3:16) · Chapters and native PNGs

Full native-screen recording (GIF)

Workout feature walkthrough

The edited walkthrough covers all three activity types, countdown cancellation/start, metric navigation, HR history, pause/resume, cancelling the end prompt, confirmation and recap. Captions identify touch and button inputs. Captured in QEMU with synthetic service data; the production firmware uses the existing workout service.

Screenshots

Workout picker, countdown, metrics, history, pause, confirmation and recap

Validation

  • Firmware builds: qemu_emery (color) and qemu_flint (monochrome).
  • All nine focused CTest entries pass: workout active/summary/selection on rectangular and round platforms, workout utilities, workout service, and their render-fixture setup.
  • Tests cover derived metrics, absent/invalid readings, finish handling, HR ring rollover, duplicate samples, timestamp reset, missing/stale data and autoscaling. Updated native render fixtures include the dashboard, recap and HR charts.
  • QEMU walkthrough verified using monitor button events and QMP touch input. Physical watch testing remains for review.
  • Both commits pass gitlint and include DCO sign-offs and GPT-6 co-author attribution.

Based on current main; the PR #2027 emulator-feed commits used during development are not included in this diff.

Review polish still needed: Open workout pause/end screens use the distance field, and cadence/Open recaps repeat estimated calories.

gmarull and others added 2 commits September 7, 2026 22:44
Make the existing workout statistics available to the system workout app.
Guard access with the service lock and clear outputs when no workout is
active.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
Open on an activity picker with native icons, Weather colors and short
transitions through a pulsing countdown into the workout header. Support
button and touch navigation, sidebar pause/end actions, and a final recap.

Add cadence, average speed, calories and average HR. Keep active updates at
one second and offer a rolling minute of HR history with rounded automatic
bounds. Cover metrics, lifecycle, history and rectangular/round rendering.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
@gmarull
gmarull requested a review from jplexer September 14, 2026 10:49
@ericmigi

ericmigi commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

JP feedback: colourful, white
Alice: bar graph animation, heart beating animation, a little bit more character

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants