chore(wip): lot #165-169 validé QA + rework foreground #163 (KO - preuve device/toolchain insuffisante)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 17:59:43 +02:00
parent 917777e18b
commit bc533d6c45
32 changed files with 898 additions and 123 deletions

View File

@ -5,6 +5,7 @@ enum WatchCommandType {
pauseSession,
resumeSession,
startPreparedTimedStep,
completeCurrentStep,
skipCurrentStep,
skipCurrentPassage,
finishCurrentSet,
@ -60,6 +61,8 @@ enum WatchTimerRunState { stopped, running, paused }
enum WatchManualScoreScope { series, step }
enum WatchStepType { time, reps }
final class WatchCommandEnvelope {
const WatchCommandEnvelope({
this.schemaVersion = watchBridgeSchemaVersion,
@ -150,6 +153,8 @@ final class WatchSessionProjection {
this.stepIndex,
this.stepTotal,
this.stepName,
this.stepType,
this.stepTargetValue,
this.dominantTimer,
this.secondaryTimers = const [],
required this.primaryAction,
@ -190,6 +195,8 @@ final class WatchSessionProjection {
stepIndex: _nullableIntFromJson(json['stepIndex']),
stepTotal: _nullableIntFromJson(json['stepTotal']),
stepName: _nullableStringFromJson(json['stepName']),
stepType: _nullableEnumFromJson(json['stepType'], WatchStepType.values),
stepTargetValue: _nullableIntFromJson(json['stepTargetValue']),
dominantTimer: _timerFromJson(json['dominantTimer']),
secondaryTimers: _timerListFromJson(json['secondaryTimers']),
primaryAction: _enumFromJson(
@ -238,6 +245,8 @@ final class WatchSessionProjection {
final int? stepIndex;
final int? stepTotal;
final String? stepName;
final WatchStepType? stepType;
final int? stepTargetValue;
final WatchTimerProjection? dominantTimer;
final List<WatchTimerProjection> secondaryTimers;
final WatchPrimaryAction primaryAction;
@ -270,6 +279,8 @@ final class WatchSessionProjection {
'stepIndex': stepIndex,
'stepTotal': stepTotal,
'stepName': stepName,
'stepType': stepType?.name,
'stepTargetValue': stepTargetValue,
'dominantTimer': dominantTimer?.toJson(),
'secondaryTimers': secondaryTimers
.map((timer) => timer.toJson())
@ -310,6 +321,8 @@ final class WatchSessionProjection {
stepIndex == other.stepIndex &&
stepTotal == other.stepTotal &&
stepName == other.stepName &&
stepType == other.stepType &&
stepTargetValue == other.stepTargetValue &&
dominantTimer == other.dominantTimer &&
_listEquals(secondaryTimers, other.secondaryTimers) &&
primaryAction == other.primaryAction &&
@ -344,6 +357,8 @@ final class WatchSessionProjection {
stepIndex,
stepTotal,
stepName,
stepType,
stepTargetValue,
dominantTimer,
Object.hashAll(secondaryTimers),
primaryAction,