feat(state): DailyRewardNotifier with injectable clock

This commit is contained in:
2026-06-18 12:21:02 +09:00
parent ba4d4a662b
commit fa4247cd9b
3 changed files with 80 additions and 0 deletions
+10
View File
@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../data/content_repository.dart';
import '../data/save_repository.dart';
import '../data/streak.dart';
import '../game/daily/daily_reward.dart';
import '../game/models/booster.dart';
import '../game/models/season.dart';
import '../services/ad_service.dart';
@@ -15,6 +16,7 @@ import '../services/review_service.dart';
import '../services/store_reviewer.dart';
import 'ads_notifier.dart';
import 'booster_inventory_notifier.dart';
import 'daily_reward_notifier.dart';
import 'endless_best_notifier.dart';
import 'music_notifier.dart';
import 'sound_notifier.dart';
@@ -150,3 +152,11 @@ final boosterInventoryProvider =
NotifierProvider<BoosterInventoryNotifier, Map<BoosterType, int>>(
BoosterInventoryNotifier.new,
);
/// Injectable clock for the daily calendar (overridden in tests).
final dailyNowProvider = Provider<DateTime Function()>((ref) => DateTime.now);
final dailyRewardProvider =
NotifierProvider<DailyRewardNotifier, DailyResolution>(
DailyRewardNotifier.new,
);