diff --git a/assets/audio/bgm/menu.mp3 b/assets/audio/bgm/menu.mp3 new file mode 100644 index 0000000..f739987 Binary files /dev/null and b/assets/audio/bgm/menu.mp3 differ diff --git a/assets/audio/bgm/season_001.mp3 b/assets/audio/bgm/season_001.mp3 new file mode 100644 index 0000000..c7e48a1 Binary files /dev/null and b/assets/audio/bgm/season_001.mp3 differ diff --git a/lib/state/providers.dart b/lib/state/providers.dart index 49ba835..df60b2c 100644 --- a/lib/state/providers.dart +++ b/lib/state/providers.dart @@ -76,9 +76,12 @@ final seasonRefreshProvider = FutureProvider( (ref) => ref.read(contentRepositoryProvider).refresh(), ); -/// The season players land in by default: the newest available. -/// (availableSeasons is sorted by seasonId ascending.) -SeasonPack activeSeason(List seasons) => seasons.last; +/// The season players land in by default: Season 1, the start of the journey, +/// so a new player experiences the content in order rather than being dropped +/// into the newest season. (availableSeasons is sorted by seasonId ascending, +/// so `.first` is Season 1.) A season selector to reach later seasons is a +/// planned follow-up. +SeasonPack activeSeason(List seasons) => seasons.first; final streakProvider = NotifierProvider( StreakNotifier.new, diff --git a/lib/ui/screens/settings_screen.dart b/lib/ui/screens/settings_screen.dart index 5323ce0..bfa6f79 100644 --- a/lib/ui/screens/settings_screen.dart +++ b/lib/ui/screens/settings_screen.dart @@ -76,6 +76,16 @@ class SettingsScreen extends ConsumerWidget { title: Text(l10n.restorePurchases), onTap: () => iap.restorePurchases(), ), + const SizedBox(height: 24), + Center( + child: Text( + 'Block Seasons ยท v1.0.0 (build 3)', + style: TextStyle( + color: Colors.white.withValues(alpha: 0.4), + fontSize: 12, + ), + ), + ), ], ), ), diff --git a/test/state/season_refresh_test.dart b/test/state/season_refresh_test.dart index 5c41b9a..cc01462 100644 --- a/test/state/season_refresh_test.dart +++ b/test/state/season_refresh_test.dart @@ -51,9 +51,9 @@ void main() { expect(repo.calls, 1); }); - test('activeSeason picks the newest by id', () { + test('activeSeason starts at Season 1 (first by id)', () { final p1 = _pack('season_001'); final p2 = _pack('season_002'); - expect(activeSeason([p1, p2]).seasonId, 'season_002'); + expect(activeSeason([p1, p2]).seasonId, 'season_001'); }); }