From d1c1b88da44e99e90f5acbaad3670b06c81354ee Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 25 May 2026 19:54:48 +0200 Subject: [PATCH] =?UTF-8?q?feat(watchos):=20message=20clair=20si=20acc?= =?UTF-8?q?=C3=A8s=20Sant=C3=A9=20refus=C3=A9=20(au=20lieu=20de=20Error(7)?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si authorizationStatus(workoutType) == .sharingDenied après requestAuthorization, on n'essaie pas de démarrer la séance (qui échouerait en HKErrorAuthorizationDenied) et on affiche un message demandant d'activer Coach dans Réglages → Santé. Co-Authored-By: Claude Opus 4.7 (1M context) --- ios/App/CoachWatch/WorkoutManager.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ios/App/CoachWatch/WorkoutManager.swift b/ios/App/CoachWatch/WorkoutManager.swift index 91affb9..ce95691 100644 --- a/ios/App/CoachWatch/WorkoutManager.swift +++ b/ios/App/CoachWatch/WorkoutManager.swift @@ -44,6 +44,10 @@ final class WorkoutManager: NSObject, ObservableObject { try await healthStore.requestAuthorization(toShare: share, read: read) let woStatus = healthStore.authorizationStatus(for: HKQuantityType.workoutType()) workoutLog.info("requestAuthorization OK; workoutType share status=\(woStatus.rawValue)") + if woStatus == .sharingDenied { + statusMessage = "Accès Santé refusé. Active Coach dans Réglages → Santé → Accès aux données, puis relance." + return + } } catch { workoutLog.error("requestAuthorization threw: \(error.localizedDescription)") statusMessage = "Autorisation Santé refusée : \(error.localizedDescription)"