Stage 4: guided Player for both Modes and the Session summary
- buildSegments lays a Plan out as holds with Transitions (get ready, switch sides, next round, next exercise) or sets with count-up Rests; Supersets alternate members and rest per round unless asked otherwise - SessionRunner drives segments against an injected clock: auto-advance with a chime, pause, skip, back, rep sets confirmed with logged reps and kg, timed sets started on demand, early end - Player screen: countdown ring, accent pulse in the last 3 s, Flip Animation, next-up cards, Rest Screen, mute toggle, screen kept on - Sessions table (schema v2 migration) keeps a Plan snapshot and Set Logs; nothing is saved when no hold or set was done - Summary with time, exercises or sets logged, and every Set Log - Synthesised quiet cue sounds (tools/sounds), status bar per Mode Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bbdca95541
commit
971ff64117
28 files changed
+3465
-84
No files matched your search
@@ -6,7 +6,9 @@ import 'package:provider/provider.dart';
|
||||
import 'src/app.dart';
|
||||
import 'src/database/database.dart';
|
||||
import 'src/exercises/exercise_library.dart';
|
||||
import 'src/history/session_repository.dart';
|
||||
import 'src/plans/plan_repository.dart';
|
||||
import 'src/player/player_effects.dart';
|
||||
import 'src/settings/settings_controller.dart';
|
||||
|
||||
void main() async {
|
||||
@@ -24,6 +26,8 @@ void main() async {
|
||||
ChangeNotifierProvider.value(value: settings),
|
||||
Provider.value(value: library),
|
||||
Provider.value(value: PlanRepository(db)),
|
||||
Provider.value(value: SessionRepository(db)),
|
||||
Provider<PlayerEffects>(create: (_) => DevicePlayerEffects()),
|
||||
],
|
||||
child: const ZenXerciseApp(),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user