import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:hub/features/notification/index.dart'; import 'package:hub/features/storage/index.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; Future initializeApp() async { WidgetsFlutterBinding.ensureInitialized(); await _initializeTracking(); await StorageHelper().init(); await _initializeFirebase(); await _initializeNotificationService(); _initializeUrlStrategy(); _initializeSystemSettings(); await _initializeFlutterFlow(); await _initializeNav(); } Future _initializeTracking() async { print('Requesting tracking authorization...'); await AppTrackingTransparency.requestTrackingAuthorization(); print('Tracking authorization requested'); } Future _initializeFirebase() async { print('Initializing Firebase...'); await Firebase.initializeApp(); print('Firebase initialized'); } Future _initializeNotificationService() async { print('Initializing Notification Service...'); await NotificationService.initialize(); print('Notification Service initialized'); } void _initializeUrlStrategy() { print('Initializing URL Strategy...'); setUrlStrategy(PathUrlStrategy()); print('URL Strategy initialized'); } Future _initializeSystemSettings() async { print('Initializing System Settings...'); await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); if (kDebugMode) { print('Debug mode'); // await crashlyticsInstance.setCrashlyticsCollectionEnabled(false); } else { print('Release mode'); final crashlyticsInstance = FirebaseCrashlytics.instance; // await crashlyticsInstance.setCrashlyticsCollectionEnabled(true); if (crashlyticsInstance.isCrashlyticsCollectionEnabled) { // Configura o tratamento de erros não capturados FlutterError.onError = crashlyticsInstance.recordFlutterError; // crashlyticsInstance.checkForUnsentReports().then((unsentReports) { // if (unsentReports) { // crashlyticsInstance.sendUnsentReports(); // print('Existem relatórios de falhas não enviados.'); // } else { // print('Todos os relatórios de falhas foram enviados.'); // } // }).catchError((error) { // print('Erro ao verificar ou enviar relatórios não enviados: $error'); // }); } print('Crashlytics enabled'); } } Future _initializeFlutterFlow() async { print('Initializing FlutterFlow...'); await FlutterFlowTheme.initialize(); await FFLocalizations.initialize(); print('FlutterFlow initialized'); } Future _initializeNav() async { print('Initializing Nav...'); GoRouter.optionURLReflectsImperativeAPIs = true; usePathUrlStrategy(); print('Nav initialized'); }