import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:lbjconsole/screens/main_screen.dart'; import 'package:lbjconsole/util/train_type_util.dart'; import 'package:lbjconsole/util/loco_info_util.dart'; import 'package:lbjconsole/util/loco_type_util.dart'; import 'package:lbjconsole/services/loco_type_service.dart'; import 'package:lbjconsole/services/database_service.dart'; import 'package:lbjconsole/services/background_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await _initializeNotifications(); await BackgroundService.initialize(); await Future.wait([ TrainTypeUtil.initialize(), LocoInfoUtil.initialize(), LocoTypeService().initialize(), ]); runApp(const LBJReceiverApp()); } Future _initializeNotifications() async { final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher'); const InitializationSettings initializationSettings = InitializationSettings( android: initializationSettingsAndroid, ); await flutterLocalNotificationsPlugin.initialize(initializationSettings); } class LBJReceiverApp extends StatelessWidget { const LBJReceiverApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'LBJ Console', debugShowCheckedModeBanner: false, theme: ThemeData.light(), darkTheme: ThemeData.dark(), themeMode: ThemeMode.dark, home: const MainScreen(), ); } }