fix(watch-connectivity): improve WCSession lifecycle and message reliability

This commit is contained in:
2026-08-07 15:32:40 +02:00
parent e64e2353d9
commit 00a8220096
8 changed files with 266 additions and 71 deletions
+10 -14
View File
@@ -25,8 +25,6 @@ class WorkoutManager: ObservableObject {
private var lapStartTime: Date?
private var completedLaps: [CompletedLap] = []
private let suiteName = "group.com.swimbuddy.app"
init() {
healthStore = HKHealthStore()
}
@@ -34,7 +32,7 @@ class WorkoutManager: ObservableObject {
// MARK: - Data Persistence
func loadSavedWorkouts() {
guard let defaults = UserDefaults(suiteName: suiteName) else { return }
let defaults = UserDefaults.standard
if let data = defaults.data(forKey: "savedWorkouts"),
let workouts = try? JSONDecoder().decode([StoredWorkout].self, from: data) {
@@ -48,7 +46,7 @@ class WorkoutManager: ObservableObject {
}
func saveWorkoutsToStorage() {
guard let defaults = UserDefaults(suiteName: suiteName) else { return }
let defaults = UserDefaults.standard
if let data = try? JSONEncoder().encode(savedWorkouts) {
defaults.set(data, forKey: "savedWorkouts")
}
@@ -234,16 +232,14 @@ class WorkoutManager: ObservableObject {
"duration": elapsedSeconds,
]
if let defaults = UserDefaults(suiteName: suiteName) {
var completed = completedWorkouts
var summary = selectedWorkout
summary?.completedAt = ISO8601DateFormatter().string(from: Date())
if let s = summary {
completed.insert(s, at: 0)
}
if let data = try? JSONEncoder().encode(completed) {
defaults.set(data, forKey: "completedWorkouts")
}
var completed = completedWorkouts
var summary = selectedWorkout
summary?.completedAt = ISO8601DateFormatter().string(from: Date())
if let s = summary {
completed.insert(s, at: 0)
}
if let data = try? JSONEncoder().encode(completed) {
UserDefaults.standard.set(data, forKey: "completedWorkouts")
}
if WCSession.default.isReachable {