From f01e149269e4b553fba2f7d2ffebcb9e447b52e8 Mon Sep 17 00:00:00 2001 From: rzen Date: Thu, 9 Jul 2026 15:24:01 -0400 Subject: [PATCH] Launch the watch from the exercise-list start path too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Start This Split" button on a split's exercise list minted and saved the workout but never called WorkoutLauncher, so the Apple Watch never came up when starting from there — only the home-screen split picker launched it. Inject AppServices into ExerciseListView and call launchWatchWorkout from start(), mirroring the picker path. Claude-Session: https://claude.ai/code/session_01PVNBVKp5bcq52X722uMjwT --- CHANGELOG.md | 2 ++ Workouts/Views/Exercises/ExerciseListView.swift | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3d5209..363607b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ **July 2026** +Starting a workout with a split's Start This Split button now brings it up on your Apple Watch too, matching how starting one from the main list already worked. + A new Auto-Advance option lets a split flow hands-free from one exercise to the next, resting automatically between them. Each split can now set its own rest time, overriding the app-wide default in Settings. diff --git a/Workouts/Views/Exercises/ExerciseListView.swift b/Workouts/Views/Exercises/ExerciseListView.swift index 50fef0f..4c83a94 100644 --- a/Workouts/Views/Exercises/ExerciseListView.swift +++ b/Workouts/Views/Exercises/ExerciseListView.swift @@ -13,6 +13,7 @@ import SwiftData struct ExerciseListView: View { @Environment(SyncEngine.self) private var sync + @Environment(AppServices.self) private var services @Environment(\.dismiss) private var dismiss // Resolve the split by id, not a captured entity: editing a seed's exercise from @@ -221,6 +222,9 @@ struct ExerciseListView: View { await sync.save(workout: doc) pendingWorkoutID = doc.id } + // Bring the Apple Watch up into the session so the user can run it from the wrist, + // tagged with the split's activity type — mirroring the split-picker start path. + services.workoutLauncher.launchWatchWorkout(activityType: split.activityTypeEnum.hkActivityType) } private func addExercises(names: [String]) {