wip(watch): sauvegarde travail en cours lot critique (#157 #163 #164 #174 #175 #178)

This commit is contained in:
2026-07-29 12:34:07 +02:00
parent f523a5a8b5
commit 74d6000606
26 changed files with 516 additions and 62 deletions

View File

@ -19,6 +19,7 @@ abstract interface class AppDependencies {
WorkoutHistoryUseCases get workoutHistoryUseCases;
ProgressionStatsUseCase get progressionStatsUseCase;
ExercisePerformanceReferenceUseCase get exercisePerformanceReferenceUseCase;
WatchAlertPublisher get watchAlertPublisher;
DataExportUseCase get dataExportUseCase;
DataImportUseCase get dataImportUseCase;
SyncUseCases get syncUseCases;
@ -74,6 +75,8 @@ final class AppBootstrap implements AppDependencies {
final WatchCompanionProjectionUseCases watchCompanionProjectionUseCases;
final WatchCompanionCommandHandler watchCompanionCommandHandler;
final WatchWearDataLayerAdapter watchWearDataLayerAdapter;
@override
WatchAlertPublisher get watchAlertPublisher => watchWearDataLayerAdapter;
final SessionNotificationCoordinator sessionNotificationCoordinator;
@override
final CloseWorkoutSessionUseCase closeWorkoutSessionUseCase;

View File

@ -3507,7 +3507,6 @@ bool _hasSameWatchCommandRevisionState(
left.deviceSessionId == right.deviceSessionId &&
left.phase == right.phase &&
left.phoneReachable == right.phoneReachable &&
left.expiresAtEpochMs == right.expiresAtEpochMs &&
left.seriesIndex == right.seriesIndex &&
left.seriesTotal == right.seriesTotal &&
left.exerciseName == right.exerciseName &&

View File

@ -8,6 +8,10 @@ abstract interface class WatchProjectionPublisher {
Future<void> publish(WatchSessionProjection projection);
}
abstract interface class WatchAlertPublisher {
Future<void> publishAlert(WatchAlertEnvelope alert);
}
abstract interface class WatchProjectionSource {
Stream<WatchSessionProjection> get projections;