diff --git a/app/lib/core/app_shell.dart b/app/lib/core/app_shell.dart index c51d3c793d..1a65506311 100644 --- a/app/lib/core/app_shell.dart +++ b/app/lib/core/app_shell.dart @@ -55,17 +55,17 @@ class _AppShellState extends State { } if (uri.pathSegments.first == 'apps') { - if (mounted) { - var app = await context.read().getAppFromId(uri.pathSegments[1]); - if (app != null) { - PlatformManager.instance.mixpanel.track('App Opened From DeepLink', properties: {'appId': app.id}); - if (mounted) { - Navigator.of(context).push(MaterialPageRoute(builder: (context) => AppDetailPage(app: app))); - } - } else { - debugPrint('App not found: ${uri.pathSegments[1]}'); - AppSnackbar.showSnackbarError('Oops! Looks like the app you are looking for is not available.'); - } + final appProvider = context.read(); + final app = await appProvider.getAppFromId(uri.pathSegments[1]); + + if (!mounted) return; + + if (app != null) { + PlatformManager.instance.mixpanel.track('App Opened From DeepLink', properties: {'appId': app.id}); + Navigator.of(context).push(MaterialPageRoute(builder: (context) => AppDetailPage(app: app))); + } else { + debugPrint('App not found: ${uri.pathSegments[1]}'); + AppSnackbar.showSnackbarError('Oops! Looks like the app you are looking for is not available.'); } } else if (uri.pathSegments.first == 'wrapped') { if (mounted) { @@ -364,23 +364,34 @@ class _AppShellState extends State { initDeepLinks(); WidgetsBinding.instance.addPostFrameCallback((_) async { - if (context.read().isSignedIn()) { - context.read().setupHasSpeakerProfile(); - context.read().setupUserPrimaryLanguage(); - context.read().initialize(); - context.read().initialize(); + final auth = context.read(); + + if (auth.isSignedIn()) { + final homeProvider = context.read(); + final userProvider = context.read(); + final peopleProvider = context.read(); + homeProvider.setupHasSpeakerProfile(); + homeProvider.setupUserPrimaryLanguage(); + userProvider.initialize(); + peopleProvider.initialize(); try { await PlatformManager.instance.intercom.loginIdentifiedUser(SharedPreferencesUtil().uid); } catch (e) { debugPrint('Failed to login to Intercom: $e'); } - context.read().setMessagesFromCache(); - context.read().setAppsFromCache(); - context.read().refreshMessages(); - context.read().fetchSubscription(); - context.read().loadFromBackend(); + if (!mounted) return; + + final messageProvider = context.read(); + final appProvider = context.read(); + final usageProvider = context.read(); + final taskIntegrationProvider = context.read(); + messageProvider.setMessagesFromCache(); + appProvider.setAppsFromCache(); + messageProvider.refreshMessages(); + usageProvider.fetchSubscription(); + taskIntegrationProvider.loadFromBackend(); NotificationService.instance.saveNotificationToken(); } else { if (!PlatformManager.instance.isAnalyticsSupported) {