import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'config/api.dart'; import 'providers/auth_provider.dart'; import 'providers/map_provider.dart'; import 'providers/share_provider.dart'; import 'screens/login_screen.dart'; import 'screens/map_screen.dart'; import 'services/background_geo_service.dart'; import 'services/settings_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); final settings = SettingsService(); await settings.initialize(); ApiConfig.setBaseUrl(settings.baseUrl); final bgGeo = BackgroundGeoService(); await bgGeo.init(); runApp(MyApp(settingsService: settings, bgGeo: bgGeo)); } class MyApp extends StatelessWidget { final SettingsService settingsService; final BackgroundGeoService bgGeo; const MyApp({ super.key, required this.settingsService, required this.bgGeo, }); @override Widget build(BuildContext context) { return MultiProvider( providers: [ Provider.value(value: settingsService), ChangeNotifierProvider(create: (_) => AuthProvider()), ChangeNotifierProvider(create: (_) => MapProvider()), ChangeNotifierProvider(create: (_) => ShareProvider()), Provider.value(value: bgGeo), ], child: MaterialApp( title: 'Family Safety', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), ), supportedLocales: const [Locale('en', '')], initialRoute: '/', routes: { '/': (_) => const LoginScreen(), '/map': (_) => const MapScreen(), }, ), ); } }