import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../data/content_repository.dart'; import '../data/save_repository.dart'; import '../data/streak.dart'; import '../game/models/season.dart'; import '../services/audio_service.dart'; import 'game_session_notifier.dart'; import 'progress_notifier.dart'; import 'season_flow_notifier.dart'; import 'streak_notifier.dart'; final gameSessionProvider = NotifierProvider( GameSessionNotifier.new, ); final audioServiceProvider = Provider((ref) { final service = AudioService(); ref.onDispose(service.dispose); return service; }); /// Overridden with the opened repository in main() (and in tests). final saveRepositoryProvider = Provider( (ref) => throw UnimplementedError('override with an opened SaveRepository'), ); final progressProvider = NotifierProvider>( ProgressNotifier.new, ); final seasonFlowProvider = NotifierProvider( SeasonFlowNotifier.new, ); final contentRepositoryProvider = Provider((ref) => ContentRepository()); final seasonsProvider = FutureProvider>( (ref) => ref.read(contentRepositoryProvider).availableSeasons(), ); final streakProvider = NotifierProvider( StreakNotifier.new, );