From 56c5a73d9a858da035b7fc57b1f275f396f71f6f Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 12 May 2024 20:41:53 -0400 Subject: [PATCH] Bugfix: Get initial data on config import --- lib/pages/home.dart | 20 +++++++++++++++----- lib/pages/import_export.dart | 2 +- lib/providers/apps_provider.dart | 6 +++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/pages/home.dart b/lib/pages/home.dart index ff1655d..00a89af 100644 --- a/lib/pages/home.dart +++ b/lib/pages/home.dart @@ -13,6 +13,7 @@ import 'package:obtainium/pages/import_export.dart'; import 'package:obtainium/pages/settings.dart'; import 'package:obtainium/providers/apps_provider.dart'; import 'package:obtainium/providers/settings_provider.dart'; +import 'package:obtainium/providers/source_provider.dart'; import 'package:provider/provider.dart'; class HomePage extends StatefulWidget { @@ -102,13 +103,22 @@ class _HomePageState extends State { }) != null) { // ignore: use_build_context_synchronously - var result = await context.read().import( - action == 'app' - ? '{ "apps": [$dataStr] }' - : '{ "apps": $dataStr }'); + var appsProvider = await context.read(); + var result = await appsProvider.import(action == 'app' + ? '{ "apps": [$dataStr] }' + : '{ "apps": $dataStr }'); // ignore: use_build_context_synchronously showMessage( - tr('importedX', args: [plural('apps', result.key)]), context); + tr('importedX', args: [plural('apps', result.key.length)]), + context); + await appsProvider + .checkUpdates(specificIds: result.key.map((e) => e.id).toList()) + .catchError((e) { + if (e is Map && e['errors'] is MultiAppMultiError) { + showError(e['errors'].toString(), context); + } + return []; + }); } } else { throw ObtainiumError(tr('unknown')); diff --git a/lib/pages/import_export.dart b/lib/pages/import_export.dart index 7e73d0a..4d1da07 100644 --- a/lib/pages/import_export.dart +++ b/lib/pages/import_export.dart @@ -144,7 +144,7 @@ class _ImportExportPageState extends State { appsProvider.addMissingCategories(settingsProvider); showMessage( '${tr('importedX', args: [ - plural('apps', value.key) + plural('apps', value.key.length) ])}${value.value ? ' + ${tr('settings')}' : ''}', context); }); diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index a7a05b5..6f10338 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -1516,7 +1516,7 @@ class AppsProvider with ChangeNotifier { return returnPath; } - Future> import(String appsJSON) async { + Future, bool>> import(String appsJSON) async { var decodedJSON = jsonDecode(appsJSON); var newFormat = decodedJSON is! List; List importedApps = @@ -1550,8 +1550,8 @@ class AppsProvider with ChangeNotifier { } }); } - return MapEntry( - importedApps.length, newFormat && decodedJSON['settings'] != null); + return MapEntry, bool>( + importedApps, newFormat && decodedJSON['settings'] != null); } @override