diff --git a/WorkoutEditor/HealthKitManager.swift b/WorkoutEditor/HealthKitManager.swift index 8b42d92..57b45ab 100644 --- a/WorkoutEditor/HealthKitManager.swift +++ b/WorkoutEditor/HealthKitManager.swift @@ -284,6 +284,7 @@ class HealthKitManager { } struct TrimResult { + let trimmedWorkout: HKWorkout let originalDeleted: Bool let originalSource: String } @@ -421,7 +422,7 @@ class HealthKitManager { print("Could not delete original workout: \(error.localizedDescription)") } - return TrimResult(originalDeleted: deleted, originalSource: originalSource) + return TrimResult(trimmedWorkout: newWorkout, originalDeleted: deleted, originalSource: originalSource) } func saveWorkout(activityType: HKWorkoutActivityType, start: Date, end: Date, metadata: [String: Any]? = nil) async throws { diff --git a/WorkoutEditor/WorkoutEditView.swift b/WorkoutEditor/WorkoutEditView.swift index b03adb7..a79911f 100644 --- a/WorkoutEditor/WorkoutEditView.swift +++ b/WorkoutEditor/WorkoutEditView.swift @@ -22,6 +22,7 @@ struct WorkoutEditView: View { @State private var intensityMetric: IntensityMetric = .heartRate @State private var isLoadingSamples = true @State private var flowStep: EditFlowStep = .trimming + @State private var trimmedWorkout: HKWorkout? @State private var errorMessage: String? @StateObject private var stravaManager = StravaManager.shared @@ -324,7 +325,7 @@ struct WorkoutEditView: View { switch stravaManager.uploadStatus { case .idle: Button { - Task { await stravaManager.uploadWorkout(workout) } + if let trimmedWorkout { Task { await stravaManager.uploadWorkout(trimmedWorkout) } } } label: { Label("Upload to Strava", systemImage: "arrow.up.circle") .padding(.vertical, 4) @@ -355,7 +356,7 @@ struct WorkoutEditView: View { .font(.caption) .foregroundStyle(.secondary) Button("Retry") { - Task { await stravaManager.uploadWorkout(workout) } + if let trimmedWorkout { Task { await stravaManager.uploadWorkout(trimmedWorkout) } } } } } @@ -394,6 +395,7 @@ struct WorkoutEditView: View { start: trimmedStartDate, end: trimmedEndDate ) + trimmedWorkout = result.trimmedWorkout await HealthKitManager.shared.loadWorkouts() withAnimation { flowStep = .saved(originalDeleted: result.originalDeleted)