mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-17 18:49:55 +08:00
44 lines
1.2 KiB
Dart
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);
|
|
});
|
|
}
|