From d92e420b34b8a43e37441e8951002232a49081f4 Mon Sep 17 00:00:00 2001 From: B3ni <90302291+B3ni15@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:27:04 +0100 Subject: [PATCH] Update main.dart --- firka/lib/main.dart | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/firka/lib/main.dart b/firka/lib/main.dart index 2a407792..274c6e25 100644 --- a/firka/lib/main.dart +++ b/firka/lib/main.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'dart:io'; import 'dart:ui' as ui; - import 'package:dio/dio.dart'; import 'package:firka/helpers/api/client/kreta_client.dart'; import 'package:firka/helpers/db/models/app_settings_model.dart'; @@ -32,7 +31,6 @@ import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:watch_connectivity/watch_connectivity.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; - import 'helpers/db/models/homework_cache_model.dart'; import 'helpers/update_notifier.dart'; import 'helpers/live_activity_service.dart'; @@ -289,7 +287,10 @@ Future initializeApp() async { if (Platform.isIOS) { try { - await LiveActivityService.initialize(); + await LiveActivityService.initialize() + .timeout(const Duration(seconds: 8)); + } on TimeoutException catch (e, st) { + logger.warning('LiveActivity init timed out: $e', e, st); } catch (e, st) { logger.severe('Failed to initialize LiveActivity: $e', e, st); } @@ -315,8 +316,12 @@ void main() async { WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); - await dotenv.load(fileName: ".env"); - logger.info("Environment variables loaded"); + try { + await dotenv.load(fileName: ".env"); + logger.info("Environment variables loaded"); + } catch (e, st) { + logger.severe("Failed to load .env: $e", e, st); + } { final jwtPattern = @@ -410,9 +415,13 @@ void main() async { })(); } - logger.finest('loading dirty words'); - await loadDirtyWords(); - logger.finest('loaded dirty words'); + try { + logger.finest('loading dirty words'); + await loadDirtyWords(); + logger.finest('loaded dirty words'); + } catch (e, st) { + logger.severe('Failed to load dirty words: $e', e, st); + } // Run App Initialization runApp(InitializationScreen()); @@ -435,7 +444,8 @@ final UpdateNotifier globalUpdate = UpdateNotifier(); class InitializationScreen extends StatelessWidget { InitializationScreen({super.key}); - final Future _init = initializeApp(); + final Future _init = + initializeApp().timeout(const Duration(seconds: 20)); @override Widget build(BuildContext context) { @@ -448,6 +458,8 @@ class InitializationScreen extends StatelessWidget { logger.shout("Error in InitializationScreen", snapshot.error.toString(), snapshot.stackTrace); + FlutterNativeSplash.remove(); + // Handle initialization error return MaterialApp( key: ValueKey('errorPage'),