fix(workoutkit): fallback vers strength au lieu de running

Pour les activities hors whitelist (yoga, hiit, crossTraining, core,
pilates, flexibility, etc.), on bascule vers .functionalStrengthTraining
au lieu de .running. Sémantiquement plus juste pour du non-cardio —
sur la Watch l'icône sera "Entraînement musculaire" au lieu de
"Course", plus représentative.

functionalStrengthTraining est déjà whitelistée (testée empiriquement
build 15, 2026-05-18) donc safe en fallback. Ne re-déclenche pas le
precondition crash de CustomWorkout.init.

Le rawValue exact est retourné côté JS via { activityFallback: true,
activityUsed: <int> } pour permettre au web d'afficher un avertissement
informatif si besoin.
This commit is contained in:
Sylvain Bettinelli
2026-05-18 10:33:40 +00:00
parent 5a91d0b9be
commit 934dc82aa6

View File

@@ -104,12 +104,14 @@ public class CoachWorkoutKitPlugin: CAPPlugin, CAPBridgedPlugin {
// non supportées. La doc Apple confirme : .running, .cycling toujours, // non supportées. La doc Apple confirme : .running, .cycling toujours,
// .swimming/.rowing/.skating depuis watchOS 11 (WWDC24). Empirique // .swimming/.rowing/.skating depuis watchOS 11 (WWDC24). Empirique
// (testé 2026-05-18 build 15) : .functionalStrengthTraining marche. // (testé 2026-05-18 build 15) : .functionalStrengthTraining marche.
// Pour tout le reste : fallback .running pour éviter crash. // Pour tout le reste (yoga, pilates, hiit, crossTraining, core, etc.) :
// fallback .functionalStrengthTraining sémantiquement plus juste
// pour du non-cardio que .running.
let activity = isSafeForCustomWorkout(requestedActivity) let activity = isSafeForCustomWorkout(requestedActivity)
? requestedActivity ? requestedActivity
: .running : .functionalStrengthTraining
if activity != requestedActivity { if activity != requestedActivity {
NSLog("[CoachWorkoutKit] Activity rawValue=%lu not whitelisted for CustomWorkout, falling back to .running", requestedActivity.rawValue) NSLog("[CoachWorkoutKit] Activity rawValue=%lu not whitelisted for CustomWorkout, falling back to .functionalStrengthTraining", requestedActivity.rawValue)
} }
Task { Task {