chore(wip): consolidation intermédiaire multi-tickets (sprints Statistiques, UI, Bug resolution, Serveur-client)

Regroupe l'état de travail en cours réalisé dans un même worktree sur
plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164),
mélangeant des tickets QA et inProgress. Ne constitue pas une feature
terminée : commit de sauvegarde avant triage/split par ticket en
branches feature/* dédiées. Exclut les dossiers d'environnement de
build locaux et le heap dump parasite (.gitignore mis à jour).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 16:48:54 +02:00
parent 58272e354a
commit 917777e18b
279 changed files with 13546 additions and 674 deletions

View File

@ -1,4 +1,5 @@
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/foundation.dart';
abstract interface class ExerciseStepAudioCuePlayer {
Future<void> playShortCountdownBeep();
@ -13,9 +14,7 @@ final class AudioplayersExerciseStepAudioCuePlayer
AudioplayersExerciseStepAudioCuePlayer();
final AudioPlayer _player = AudioPlayer();
late final Future<void> _audioContextReady = _player.setAudioContext(
_stepCueAudioContext,
);
late final Future<void> _audioContextReady = _configureAudioContext();
@override
Future<void> playShortCountdownBeep() {
@ -33,6 +32,14 @@ final class AudioplayersExerciseStepAudioCuePlayer
await _player.play(AssetSource(assetPath));
}
Future<void> _configureAudioContext() async {
try {
await _player.setAudioContext(_stepCueAudioContext);
} on Object catch (error) {
debugPrint('Audio cue context ignored: $error');
}
}
@override
Future<void> dispose() {
return _player.dispose();