fix(workoutkit): efface les séances programmées avant d'en pousser une nouvelle

WorkoutScheduler.schedule() empilait : chaque envoi ajoutait un workout sans
retirer le précédent → un ancien restait dans Exercice → Programmées et on
risquait maxAllowedScheduledWorkoutCount. Ajout de removeAllWorkouts() avant
schedule() (ne touche que nos workouts) : 1 envoi = la séance courante remplace
la précédente. API vérifiée swiftinterface WorkoutKit (iOS 26.5 SDK).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Sylvain
2026-05-31 13:38:33 +02:00
parent bf975ce8e6
commit c407aa8364

View File

@@ -280,6 +280,15 @@ public class CoachWorkoutKitPlugin: CAPPlugin, CAPBridgedPlugin {
NSLog("[CoachWorkoutKit] requestAuthorization failed: \(error)")
}
// 8bis. Efface les workouts déjà programmés par l'app avant d'en
// ajouter un nouveau. Sans ça, WorkoutScheduler EMPILE chaque envoi
// (un ancien workout reste visible dans Exercice Programmées, et
// on finit par buter sur maxAllowedScheduledWorkoutCount). Modèle
// "1 envoi = la séance courante remplace la précédente".
// removeAllWorkouts() ne touche que NOS workouts programmés.
await WorkoutScheduler.shared.removeAllWorkouts()
NSLog("[CoachWorkoutKit] removeAllWorkouts (anciennes séances effacées)")
// 9. Schedule le workout. Schedule pour 1 minute dans le futur (vs
// "now") pour s'assurer que la date n'est pas dans le passé au
// moment où le système traite l'event (sinon il peut être ignoré).