Files
math-metrix/lib/main.dart

49 lines
1.7 KiB
Dart
Executable File

import 'package:firebase_analytics/firebase_analytics.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:get_it/get_it.dart';
import 'package:mathgame/src/ui/app/app.dart';
import 'package:mathgame/src/ui/app/theme_provider.dart';
import 'package:mathgame/src/ui/dashboard/dashboard_provider.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
if (kDebugMode) {
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(false);
}
final sharedPreferences = await SharedPreferences.getInstance();
FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.instance;
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
setupServiceLocator(sharedPreferences);
runApp(
MultiProvider(
providers: [
// Provider<SharedPreferences>(create: (context) => sharedPreferences),
ChangeNotifierProvider(
create: (context) =>
ThemeProvider(sharedPreferences: sharedPreferences),
),
ChangeNotifierProvider<DashboardProvider>(
create: (context) => GetIt.I.get<DashboardProvider>(),
)
],
child: MyApp(
firebaseAnalytics: firebaseAnalytics,
),
),
);
}
setupServiceLocator(SharedPreferences sharedPreferences) {
GetIt.I.registerSingleton<DashboardProvider>(
DashboardProvider(preferences: sharedPreferences));
}