import 'package:flutter/material.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'services/settings_service.dart'; import 'services/api_service.dart'; import 'services/sms_reader_service.dart'; import 'screens/login_screen.dart'; import 'screens/home_screen.dart'; final apiService = ApiService(); final smsReaderService = SmsReaderService(); late SettingsService settings; void main() async { WidgetsFlutterBinding.ensureInitialized(); settings = await SettingsService.init(); if (settings.isConfigured) { apiService.configure(settings.serverUrl!, settings.token!); } FlutterForegroundTask.initCommunicationPort(); FlutterForegroundTask.init( androidNotificationOptions: AndroidNotificationOptions( channelId: 'sms_monitor_foreground', channelName: 'SMS Monitor Service', ), iosNotificationOptions: const IOSNotificationOptions(), foregroundTaskOptions: ForegroundTaskOptions( eventAction: ForegroundTaskEventAction.nothing(), ), ); runApp(const SmsMonitorApp()); } class SmsMonitorApp extends StatelessWidget { const SmsMonitorApp({super.key}); @override Widget build(BuildContext context) { return DynamicColorBuilder( builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) { final lightScheme = lightDynamic?.harmonized() ?? ColorScheme.fromSeed(seedColor: Colors.indigo, brightness: Brightness.light); final darkScheme = darkDynamic?.harmonized() ?? ColorScheme.fromSeed(seedColor: Colors.indigo, brightness: Brightness.dark); return MaterialApp( title: 'SMS Monitor', theme: ThemeData( colorScheme: lightScheme, useMaterial3: true, ), darkTheme: ThemeData( colorScheme: darkScheme, useMaterial3: true, ), home: settings.isConfigured ? const HomeScreen() : const LoginScreen(), ); }, ); } }