diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index a0b920d803..58f3f6637c 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -11,32 +11,32 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:immich_mobile/constants/constants.dart'; -import 'package:immich_mobile/constants/locales.dart'; -import 'package:immich_mobile/domain/services/background_worker.service.dart'; -import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/extensions/build_context_extensions.dart'; +import 'package:immich_mobile/constants/constants.dart'; +import 'package:immich_mobile/constants/locales.dart'; +import 'package:immich_mobile/domain/services/background_worker.service.dart'; +import 'package:immich_mobile/entities/store.entity.dart'; +import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/translate_extensions.dart'; import 'package:immich_mobile/generated/codegen_loader.g.dart'; import 'package:immich_mobile/generated/intl_keys.g.dart'; import 'package:immich_mobile/infrastructure/repositories/network.repository.dart'; import 'package:immich_mobile/platform/background_worker_lock_api.g.dart'; -import 'package:immich_mobile/providers/app_life_cycle.provider.dart'; -import 'package:immich_mobile/providers/asset_viewer/share_intent_upload.provider.dart'; -import 'package:immich_mobile/providers/asset_viewer/view_intent_handler.provider.dart'; -import 'package:immich_mobile/providers/auth.provider.dart'; -import 'package:immich_mobile/providers/db.provider.dart'; -import 'package:immich_mobile/services/view_intent_service.dart'; -import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/platform.provider.dart'; -import 'package:immich_mobile/providers/locale_provider.dart'; -import 'package:immich_mobile/providers/routes.provider.dart'; -import 'package:immich_mobile/providers/theme.provider.dart'; -import 'package:immich_mobile/routing/app_navigation_observer.dart'; +import 'package:immich_mobile/providers/app_life_cycle.provider.dart'; +import 'package:immich_mobile/providers/asset_viewer/share_intent_upload.provider.dart'; +import 'package:immich_mobile/providers/asset_viewer/view_intent_handler.provider.dart'; +import 'package:immich_mobile/providers/auth.provider.dart'; +import 'package:immich_mobile/providers/db.provider.dart'; +import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; +import 'package:immich_mobile/providers/infrastructure/platform.provider.dart'; +import 'package:immich_mobile/providers/locale_provider.dart'; +import 'package:immich_mobile/providers/routes.provider.dart'; +import 'package:immich_mobile/providers/theme.provider.dart'; +import 'package:immich_mobile/routing/app_navigation_observer.dart'; import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/services/background.service.dart'; import 'package:immich_mobile/services/deep_link.service.dart'; import 'package:immich_mobile/services/local_notification.service.dart'; +import 'package:immich_mobile/services/view_intent_service.dart'; import 'package:immich_mobile/theme/dynamic_theme.dart'; import 'package:immich_mobile/theme/theme_data.dart'; import 'package:immich_mobile/utils/bootstrap.dart'; @@ -133,19 +133,19 @@ class ImmichApp extends ConsumerStatefulWidget { ImmichAppState createState() => ImmichAppState(); } -class ImmichAppState extends ConsumerState with WidgetsBindingObserver { - ProviderSubscription? _authSubscription; - - @override - void didChangeAppLifecycleState(AppLifecycleState state) { - switch (state) { - case AppLifecycleState.resumed: - dPrint(() => "[APP STATE] resumed"); - ref.read(appStateProvider.notifier).handleAppResume(); - // Check for ACTION_VIEW intent when app resumes - unawaited(ref.read(viewIntentServiceProvider).checkViewIntent()); - unawaited(ref.read(viewIntentServiceProvider).flushPending()); - break; +class ImmichAppState extends ConsumerState with WidgetsBindingObserver { + ProviderSubscription? _authSubscription; + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + switch (state) { + case AppLifecycleState.resumed: + dPrint(() => "[APP STATE] resumed"); + ref.read(appStateProvider.notifier).handleAppResume(); + // Check for ACTION_VIEW intent when app resumes + unawaited(ref.read(viewIntentServiceProvider).checkViewIntent()); + unawaited(ref.read(viewIntentServiceProvider).flushPending()); + break; case AppLifecycleState.inactive: dPrint(() => "[APP STATE] inactive"); ref.read(appStateProvider.notifier).handleAppInactivity(); @@ -214,9 +214,9 @@ class ImmichAppState extends ConsumerState with WidgetsBindingObserve }); } - @override - initState() { - super.initState(); + @override + initState() { + super.initState(); initApp().then((_) => dPrint(() => "App Init Completed")); WidgetsBinding.instance.addPostFrameCallback((_) { // needs to be delayed so that EasyLocalization is working @@ -236,22 +236,22 @@ class ImmichAppState extends ConsumerState with WidgetsBindingObserve ref.read(backgroundServiceProvider).resumeServiceIfEnabled(); } }); - - ref.read(viewIntentHandlerProvider).init(); - ref.read(shareIntentUploadProvider.notifier).init(); - _authSubscription = ref.listenManual(authProvider.select((state) => state.isAuthenticated), (_, isAuthenticated) { - if (isAuthenticated) { - unawaited(ref.read(viewIntentServiceProvider).flushPending()); - } - }, fireImmediately: true); - } - - @override - void dispose() { - _authSubscription?.close(); - WidgetsBinding.instance.removeObserver(this); - super.dispose(); - } + + ref.read(viewIntentHandlerProvider).init(); + ref.read(shareIntentUploadProvider.notifier).init(); + _authSubscription = ref.listenManual(authProvider.select((state) => state.isAuthenticated), (_, isAuthenticated) { + if (isAuthenticated) { + unawaited(ref.read(viewIntentServiceProvider).flushPending()); + } + }, fireImmediately: true); + } + + @override + void dispose() { + _authSubscription?.close(); + WidgetsBinding.instance.removeObserver(this); + super.dispose(); + } @override void reassemble() {