Files
BlockSeasons/lib/state/streak_notifier.dart
airkjw 607278928b Add daily streak system and normalize bundle id to com.airkjw.blockseasons
Pure advanceStreak (1-day grace none, milestone flags at 3/7/14/30),
persisted in the save blob; StreakNotifier advances on every finished
attempt; home screen flame chip and milestone snackbar. Fix flutter
create's camelCased iOS bundle id and underscored Android application
id to the agreed lowercase form before any store registration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 17:25:39 +09:00

17 lines
497 B
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../data/streak.dart';
import 'providers.dart';
/// Daily streak state; advanced once per stage attempt (win or lose).
class StreakNotifier extends Notifier<StreakState> {
@override
StreakState build() => ref.read(saveRepositoryProvider).streak;
Future<void> onStagePlayed(DateTime now) async {
final next = advanceStreak(state, now);
await ref.read(saveRepositoryProvider).saveStreak(next);
state = next;
}
}