feat: session content sync trigger and newest-season selection

Add seasonRefreshProvider (once-per-session FutureProvider) and activeSeason()
helper; HomeScreen listens and invalidates seasonsProvider when new packs arrive;
season_map_screen and season_title_screen switch from list.first to activeSeason.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 13:28:39 +09:00
parent 73a56aeeb1
commit 4fa5564975
5 changed files with 76 additions and 2 deletions
+10
View File
@@ -44,6 +44,16 @@ final seasonsProvider = FutureProvider<List<SeasonPack>>(
(ref) => ref.read(contentRepositoryProvider).availableSeasons(),
);
/// One background content sync per app session. Home listens and refreshes
/// the season list when new packs arrived.
final seasonRefreshProvider = FutureProvider<bool>(
(ref) => ref.read(contentRepositoryProvider).refresh(),
);
/// The season players land in by default: the newest available.
/// (availableSeasons is sorted by seasonId ascending.)
SeasonPack activeSeason(List<SeasonPack> seasons) => seasons.last;
final streakProvider = NotifierProvider<StreakNotifier, StreakState>(
StreakNotifier.new,
);