Stage 5: History, the shared daily Streak and Reminders
- Streak computed from all complete Sessions: Grace Hour (00:00-01:00 counts for yesterday unless it is done), a Freeze per 7 Streak Days (max 2) spent automatically on a missed day (ADR 0006) - Top bar flame (grey until today is done) opening a panel with current and longest Streak, Freezes and a month calendar; 'Day N of your streak' on a fresh summary - History per Mode grouped by day, reopening each summary - Two adjustable Reminders (19:00, 22:30) scheduled 14 days ahead with flutter_local_notifications, none on a done day; permission asked after the first complete Session or from Settings - Settings: Reminders, the Player chime, exercise credits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
971ff64117
commit
1ffe6269ea
31 files changed
+1972
-50
No files matched your search
+6
-1
@@ -13,6 +13,7 @@ import 'plans/views/plan_editor_view.dart';
|
||||
import 'player/views/player_view.dart';
|
||||
import 'player/views/summary_view.dart';
|
||||
import 'settings/settings_controller.dart';
|
||||
import 'settings/settings_view.dart';
|
||||
|
||||
class ZenXerciseApp extends StatelessWidget {
|
||||
const ZenXerciseApp({super.key});
|
||||
@@ -47,7 +48,11 @@ class ZenXerciseApp extends StatelessWidget {
|
||||
PlanEditorView.routeName => PlanEditorView(planId: settings.arguments! as String),
|
||||
ExercisePickerView.routeName => ExercisePickerView(planId: settings.arguments! as String),
|
||||
PlayerView.routeName => PlayerView(planId: settings.arguments! as String),
|
||||
SummaryView.routeName => SummaryView(sessionId: settings.arguments! as String),
|
||||
SummaryView.routeName => switch (settings.arguments) {
|
||||
final SummaryArguments a => SummaryView(sessionId: a.sessionId, justFinished: a.justFinished),
|
||||
final id => SummaryView(sessionId: id! as String),
|
||||
},
|
||||
SettingsView.routeName => const SettingsView(),
|
||||
_ => const HomeView(),
|
||||
},
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user