mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 13:33:28 +01:00 
			
		
		
		
	Bugfix for switching pages while downloading #150
This commit is contained in:
		| @@ -31,6 +31,8 @@ const supportedLocales = [Locale('en'), Locale('zh'), Locale('it')]; | ||||
| const fallbackLocale = Locale('en'); | ||||
| const localeDir = 'assets/translations'; | ||||
|  | ||||
| final globalNavigatorKey = GlobalKey<NavigatorState>(); | ||||
|  | ||||
| Future<void> loadTranslations() async { | ||||
|   // See easy_localization/issues/210 | ||||
|   await EasyLocalizationController.initEasyLocation(); | ||||
| @@ -237,6 +239,7 @@ class _ObtainiumState extends State<Obtainium> { | ||||
|           localizationsDelegates: context.localizationDelegates, | ||||
|           supportedLocales: context.supportedLocales, | ||||
|           locale: context.locale, | ||||
|           navigatorKey: globalNavigatorKey, | ||||
|           theme: ThemeData( | ||||
|               useMaterial3: true, | ||||
|               colorScheme: settingsProvider.theme == ThemeSettings.dark | ||||
|   | ||||
| @@ -5,6 +5,7 @@ import 'package:obtainium/components/custom_app_bar.dart'; | ||||
| import 'package:obtainium/components/generated_form.dart'; | ||||
| import 'package:obtainium/components/generated_form_modal.dart'; | ||||
| import 'package:obtainium/custom_errors.dart'; | ||||
| import 'package:obtainium/main.dart'; | ||||
| import 'package:obtainium/pages/app.dart'; | ||||
| import 'package:obtainium/pages/import_export.dart'; | ||||
| import 'package:obtainium/providers/apps_provider.dart'; | ||||
| @@ -108,7 +109,8 @@ class _AddAppPageState extends State<AddAppPage> { | ||||
|             } | ||||
|             app.preferredApkIndex = app.apkUrls.indexOf(apkUrl); | ||||
|             // ignore: use_build_context_synchronously | ||||
|             var downloadedApk = await appsProvider.downloadApp(app, context); | ||||
|             var downloadedApk = await appsProvider.downloadApp( | ||||
|                 app, globalNavigatorKey.currentContext); | ||||
|             app.id = downloadedApk.appId; | ||||
|           } | ||||
|           if (appsProvider.apps.containsKey(app.id)) { | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; | ||||
| import 'package:flutter/services.dart'; | ||||
| import 'package:obtainium/components/generated_form_modal.dart'; | ||||
| import 'package:obtainium/custom_errors.dart'; | ||||
| import 'package:obtainium/main.dart'; | ||||
| import 'package:obtainium/providers/apps_provider.dart'; | ||||
| import 'package:obtainium/providers/settings_provider.dart'; | ||||
| import 'package:obtainium/providers/source_provider.dart'; | ||||
| @@ -250,7 +251,9 @@ class _AppPageState extends State<AppPage> { | ||||
|                                           appsProvider | ||||
|                                               .downloadAndInstallLatestApps( | ||||
|                                                   [app!.app.id], | ||||
|                                                   context).then((res) { | ||||
|                                                   globalNavigatorKey | ||||
|                                                       .currentContext).then( | ||||
|                                                   (res) { | ||||
|                                             if (res.isNotEmpty && mounted) { | ||||
|                                               Navigator.of(context).pop(); | ||||
|                                             } | ||||
|   | ||||
| @@ -5,6 +5,7 @@ import 'package:obtainium/components/custom_app_bar.dart'; | ||||
| import 'package:obtainium/components/generated_form.dart'; | ||||
| import 'package:obtainium/components/generated_form_modal.dart'; | ||||
| import 'package:obtainium/custom_errors.dart'; | ||||
| import 'package:obtainium/main.dart'; | ||||
| import 'package:obtainium/pages/app.dart'; | ||||
| import 'package:obtainium/providers/apps_provider.dart'; | ||||
| import 'package:obtainium/providers/settings_provider.dart'; | ||||
| @@ -462,8 +463,8 @@ class AppsPageState extends State<AppsPage> { | ||||
|                                         trackOnlyUpdateIdsAllOrSelected); | ||||
|                                   } | ||||
|                                   appsProvider | ||||
|                                       .downloadAndInstallLatestApps( | ||||
|                                           toInstall, context) | ||||
|                                       .downloadAndInstallLatestApps(toInstall, | ||||
|                                           globalNavigatorKey.currentContext) | ||||
|                                       .catchError((e) { | ||||
|                                     showError(e, context); | ||||
|                                   }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user