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
@@ -55,4 +55,12 @@ void main() {
|
||||
|
||||
expect(workout.map((s) => s.endedAt.day), [29, 28]);
|
||||
});
|
||||
|
||||
test('the Streak sees complete Sessions of both Modes only', () async {
|
||||
await sessions.save(result(Mode.workout, DateTime(2026, 10, 28)));
|
||||
await sessions.save(result(Mode.stretching, DateTime(2026, 10, 29)));
|
||||
await sessions.save(result(Mode.stretching, DateTime(2026, 10, 30), complete: false));
|
||||
|
||||
expect(await sessions.completeEndTimes(), unorderedEquals([DateTime(2026, 10, 28), DateTime(2026, 10, 29)]));
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user