Files
GitJournal/lib/main.dart
2020-01-07 20:15:19 +01:00

44 lines
1.2 KiB
Dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' as foundation;
import 'package:flutter_crashlytics/flutter_crashlytics.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:gitjournal/app.dart';
import 'package:gitjournal/settings.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
var pref = await SharedPreferences.getInstance();
Settings.instance.load(pref);
JournalApp.isInDebugMode = foundation.kDebugMode;
var reportCrashes =
!JournalApp.isInDebugMode && Settings.instance.collectCrashReports;
FlutterError.onError = (FlutterErrorDetails details) {
if (!reportCrashes) {
FlutterError.dumpErrorToConsole(details);
} else {
Zone.current.handleUncaughtError(details.exception, details.stack);
}
};
print("Report Crashes: $reportCrashes");
if (reportCrashes) {
await FlutterCrashlytics().initialize();
}
runZoned<Future<void>>(() async {
await JournalApp.main(pref);
}, onError: (Object error, StackTrace stackTrace) async {
print("Uncaught Exception: " + error.toString());
print(stackTrace);
await FlutterCrashlytics()
.reportCrash(error, stackTrace, forceCrash: false);
});
}