62 lines
1.9 KiB
Dart
62 lines
1.9 KiB
Dart
import 'dart:developer';
|
|
|
|
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/backend/notifications/notification_service.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';
|
|
import 'package:hub/shared/helpers/storage/storage_helper.dart';
|
|
|
|
Future<void> initializeApp() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await _initializeTracking();
|
|
await StorageHelper().init();
|
|
|
|
await _initializeFirebase();
|
|
await _initializeNotificationService();
|
|
_initializeUrlStrategy();
|
|
_initializeSystemSettings();
|
|
await _initializeFlutterFlow();
|
|
}
|
|
|
|
Future<void> _initializeTracking() async {
|
|
await AppTrackingTransparency.requestTrackingAuthorization();
|
|
}
|
|
|
|
Future<void> _initializeFirebase() async {
|
|
await Firebase.initializeApp();
|
|
}
|
|
|
|
Future<void> _initializeNotificationService() async {
|
|
await NotificationService.initialize();
|
|
}
|
|
|
|
void _initializeUrlStrategy() {
|
|
setUrlStrategy(PathUrlStrategy());
|
|
}
|
|
|
|
void _initializeSystemSettings() {
|
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
|
if (kDebugMode) {
|
|
log("Aplicativo em Debug Mode, crashlytics desabilitado!");
|
|
} else {
|
|
final crashlyticsInstance = FirebaseCrashlytics.instance;
|
|
if (crashlyticsInstance.isCrashlyticsCollectionEnabled) {
|
|
FlutterError.onError = crashlyticsInstance.recordFlutterError;
|
|
}
|
|
}
|
|
}
|
|
|
|
Future<void> _initializeFlutterFlow() async {
|
|
await FlutterFlowTheme.initialize();
|
|
await FFLocalizations.initialize();
|
|
GoRouter.optionURLReflectsImperativeAPIs = true;
|
|
usePathUrlStrategy();
|
|
}
|