import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:url_strategy/url_strategy.dart'; // import 'package:firebase_core/firebase_core.dart'; // ❌ Commented out Firebase import 'package:marco/controller/permission_controller.dart'; import 'package:marco/controller/project_controller.dart'; import 'package:marco/helpers/services/storage/local_storage.dart'; import 'package:marco/helpers/services/app_logger.dart'; import 'package:marco/helpers/services/auth_service.dart'; // import 'package:marco/helpers/services/firebase/firebase_messaging_service.dart'; // ❌ Commented out FCM import 'package:marco/helpers/services/device_info_service.dart'; import 'package:marco/helpers/theme/theme_customizer.dart'; import 'package:marco/helpers/theme/app_theme.dart'; Future initializeApp() async { try { logSafe("💡 Starting app initialization..."); await Future.wait([ _setupUI(), // _setupFirebase(), // ❌ Commented out Firebase init _setupLocalStorage(), ]); await _setupDeviceInfo(); await _handleAuthTokens(); await _setupTheme(); await _setupControllers(); // await _setupFirebaseMessaging(); // ❌ Commented out FCM init _finalizeAppStyle(); logSafe("✅ App initialization completed successfully."); } catch (e, stacktrace) { logSafe( "⛔ Error during app initialization", level: LogLevel.error, error: e, stackTrace: stacktrace, ); rethrow; } } Future _setupUI() async { setPathUrlStrategy(); await SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transparent, systemNavigationBarColor: Colors.transparent, statusBarIconBrightness: Brightness.light, systemNavigationBarIconBrightness: Brightness.dark, )); logSafe("💡 UI setup completed."); } // ❌ Commented out Firebase setup /* Future _setupFirebase() async { await Firebase.initializeApp(); logSafe("💡 Firebase initialized."); } */ Future _setupLocalStorage() async { await LocalStorage.init(); logSafe("💡 Local storage initialized."); } Future _setupDeviceInfo() async { final deviceInfoService = DeviceInfoService(); await deviceInfoService.init(); logSafe("📱 Device Info: ${deviceInfoService.deviceData}"); } Future _handleAuthTokens() async { final refreshToken = await LocalStorage.getRefreshToken(); if (refreshToken?.isNotEmpty ?? false) { logSafe("🔁 Refresh token found. Attempting to refresh JWT..."); final success = await AuthService.refreshToken(); if (!success) { logSafe( "⚠️ Refresh token invalid or expired. Skipping controller injection."); } } else { logSafe("❌ No refresh token found. Skipping refresh."); } } Future _setupTheme() async { await ThemeCustomizer.init(); logSafe("💡 Theme customizer initialized."); } Future _setupControllers() async { final token = LocalStorage.getString('jwt_token'); if (token?.isEmpty ?? true) { logSafe("⚠️ No valid JWT token found. Skipping controller initialization."); return; } if (!Get.isRegistered()) { Get.put(PermissionController()); logSafe("💡 PermissionController injected."); } if (!Get.isRegistered()) { Get.put(ProjectController(), permanent: true); logSafe("💡 ProjectController injected as permanent."); } await Future.wait([ Get.find().loadData(token!), Get.find().fetchProjects(), ]); } // ❌ Commented out Firebase Messaging setup /* Future _setupFirebaseMessaging() async { await FirebaseNotificationService().initialize(); logSafe("💡 Firebase Messaging initialized."); } */ void _finalizeAppStyle() { AppStyle.init(); logSafe("💡 AppStyle initialized."); }