import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'router.dart'; import 'theme/app_theme.dart'; import 'providers/providers.dart'; import 'services/audio_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // Load saved theme preference final prefs = await SharedPreferences.getInstance(); final savedTheme = prefs.getString('theme_mode') ?? 'dark'; final themeMode = switch (savedTheme) { 'light' => ThemeMode.light, 'system' => ThemeMode.system, _ => ThemeMode.dark, }; // Initialize audio service AudioService.init(); runApp( ProviderScope( overrides: [ themeModeProvider.overrideWith((ref) => themeMode), ], child: const PAILotApp(), ), ); } class PAILotApp extends ConsumerStatefulWidget { const PAILotApp({super.key}); @override ConsumerState createState() => _PAILotAppState(); } class _PAILotAppState extends ConsumerState { late final GoRouter _router; @override void initState() { super.initState(); _router = createRouter(); } @override Widget build(BuildContext context) { final themeMode = ref.watch(themeModeProvider); return MaterialApp.router( title: 'PAILot', theme: AppTheme.lightTheme, darkTheme: AppTheme.darkTheme, themeMode: themeMode, routerConfig: _router, debugShowCheckedModeBanner: false, ); } }