Rework the Apple Watch progress flow

Watch root lists every in-progress workout; picking an exercise runs a paged Ready -> work/rest -> Finish flow (One More + auto-firing Done), with a phase-dot row and brand-tinted count-up/down timers. Includes the configurable rest and auto-finish settings synced over WatchConnectivity and the wrist-down timer fix.
This commit is contained in:
2026-06-20 14:15:31 -04:00
parent f2da47a70a
commit f06c4e996e
9 changed files with 373 additions and 111 deletions
+4 -3
View File
@@ -27,7 +27,7 @@ struct WatchScreenshotRoot: View {
if let workout = activeWorkout {
switch ScreenshotSeed.screen(default: "list") {
case "work":
ProgressHost(workout: workout, exerciseName: "Lat Pulldown", page: nil)
ProgressHost(workout: workout, exerciseName: "Lat Pulldown", page: 0)
case "rest":
ProgressHost(workout: workout, exerciseName: "Lat Pulldown", page: 1)
default:
@@ -39,8 +39,9 @@ struct WatchScreenshotRoot: View {
}
}
/// Hosts the progress view with a working-copy binding (and an optional pinned page so
/// we can capture a rest phase, which the normal resume logic never lands on).
/// Hosts the progress view with a working-copy binding and a pinned page (which also
/// suppresses the Ready lead-in), so we can capture a specific work or rest phase that
/// the normal resume logic wouldn't land on.
private struct ProgressHost: View {
@State private var doc: WorkoutDocument
private let logID: String