@@ -21,6 +21,7 @@ import 'package:copycat_base/bloc/offline_persistance_cubit/offline_persistance_
2121import 'package:copycat_base/bloc/sync_manager_cubit/sync_manager_cubit.dart' ;
2222import 'package:copycat_base/bloc/window_action_cubit/window_action_cubit.dart' ;
2323import 'package:copycat_base/common/bloc_config.dart' ;
24+ import 'package:copycat_base/common/logging.dart' ;
2425import 'package:copycat_base/constants/key.dart' ;
2526import 'package:copycat_base/constants/widget_styles.dart' ;
2627import 'package:copycat_base/l10n/generated/app_localizations.dart' ;
@@ -46,10 +47,15 @@ import 'package:window_manager/window_manager.dart';
4647import 'firebase_options.dart' ;
4748
4849Future <void > main () async {
49- WidgetsFlutterBinding .ensureInitialized ();
50- await initializeServices ();
50+ runZonedGuarded (() async {
51+ WidgetsFlutterBinding .ensureInitialized ();
52+ await initializeServices ();
5153
52- runApp (const MainApp ());
54+ runApp (const MainApp ());
55+ }, (error, stack) async {
56+ FirebaseCrashlytics .instance.recordError (error, stack, fatal: true );
57+ debugPrint ('Uncaught Error: $error ' );
58+ });
5359}
5460
5561Future <void > initializeServices () async {
@@ -96,27 +102,36 @@ Future<void> initializeDesktopServices() async {
96102 titleBarStyle: TitleBarStyle .hidden,
97103 );
98104 windowManager.waitUntilReadyToShow (windowOptions).then ((_) async {
99- // if (Platform.isMacOS) {
100- // await windowManager.setVisibleOnAllWorkspaces(
101- // true,
102- // visibleOnFullScreen: true,
103- // );
104- // }
105- windowManager.hide ();
105+ await windowManager.hide ();
106106 });
107107}
108108
109109Future <void > initializeFirebase () async {
110- if (isAnalyticsSupported) {
111- await Firebase .initializeApp (
112- options: DefaultFirebaseOptions .currentPlatform,
113- );
110+ try {
111+ if (isAnalyticsSupported) {
112+ await Firebase .initializeApp (
113+ options: DefaultFirebaseOptions .currentPlatform,
114+ );
114115
115- FlutterError .onError = FirebaseCrashlytics .instance.recordFlutterFatalError;
116- PlatformDispatcher .instance.onError = (error, stack) {
117- FirebaseCrashlytics .instance.recordError (error, stack, fatal: true );
118- return true ;
119- };
116+ FlutterError .onError = (errorDetail) {
117+ try {
118+ FirebaseCrashlytics .instance.recordFlutterFatalError (errorDetail);
119+ } catch (e) {
120+ logger.e (e);
121+ }
122+ };
123+ PlatformDispatcher .instance.onError = (error, stack) {
124+ try {
125+ FirebaseCrashlytics .instance
126+ .recordError (error, stack, printDetails: true , fatal: false );
127+ } catch (e) {
128+ logger.e (e);
129+ }
130+ return true ;
131+ };
132+ }
133+ } catch (e) {
134+ logger.e (e);
120135 }
121136}
122137
0 commit comments