import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:firebase_core/firebase_core.dart'; import 'app/routes/app_pages.dart'; import 'core/services/push_notification_service.dart'; import 'core/services/upload_progress_service.dart'; import 'core/services/home_widget_service.dart'; import 'app/theme/app_theme.dart'; @pragma('vm:entry-point') Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { await Firebase.initializeApp(); debugPrint("Handling a background message: ${message.messageId}"); } void main() async { WidgetsFlutterBinding.ensureInitialized(); // 1. Initialize Firebase & Notifications await Firebase.initializeApp(); await PushNotificationService.initialize(); // 2. Register background handler FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); // 3. Register global services Get.put(UploadProgressService(), permanent: true); Get.put(HomeWidgetService(), permanent: true); runApp(const MusadaqApp()); } class MusadaqApp extends StatelessWidget { const MusadaqApp({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( title: 'Musadaq', theme: AppTheme.lightTheme, darkTheme: AppTheme.darkTheme, themeMode: ThemeMode.system, initialRoute: AppPages.INITIAL, getPages: AppPages.routes, debugShowCheckedModeBanner: false, locale: const Locale('ar', 'JO'), // Arabic by default ); } }