mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-23 09:29:41 +02:00
Bugfix: Get initial data on config import
This commit is contained in:
@@ -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<HomePage> {
|
||||
}) !=
|
||||
null) {
|
||||
// ignore: use_build_context_synchronously
|
||||
var result = await context.read<AppsProvider>().import(
|
||||
action == 'app'
|
||||
var appsProvider = await context.read<AppsProvider>();
|
||||
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 <App>[];
|
||||
});
|
||||
}
|
||||
} else {
|
||||
throw ObtainiumError(tr('unknown'));
|
||||
|
@@ -144,7 +144,7 @@ class _ImportExportPageState extends State<ImportExportPage> {
|
||||
appsProvider.addMissingCategories(settingsProvider);
|
||||
showMessage(
|
||||
'${tr('importedX', args: [
|
||||
plural('apps', value.key)
|
||||
plural('apps', value.key.length)
|
||||
])}${value.value ? ' + ${tr('settings')}' : ''}',
|
||||
context);
|
||||
});
|
||||
|
@@ -1516,7 +1516,7 @@ class AppsProvider with ChangeNotifier {
|
||||
return returnPath;
|
||||
}
|
||||
|
||||
Future<MapEntry<int, bool>> import(String appsJSON) async {
|
||||
Future<MapEntry<List<App>, bool>> import(String appsJSON) async {
|
||||
var decodedJSON = jsonDecode(appsJSON);
|
||||
var newFormat = decodedJSON is! List;
|
||||
List<App> importedApps =
|
||||
@@ -1550,8 +1550,8 @@ class AppsProvider with ChangeNotifier {
|
||||
}
|
||||
});
|
||||
}
|
||||
return MapEntry<int, bool>(
|
||||
importedApps.length, newFormat && decodedJSON['settings'] != null);
|
||||
return MapEntry<List<App>, bool>(
|
||||
importedApps, newFormat && decodedJSON['settings'] != null);
|
||||
}
|
||||
|
||||
@override
|
||||
|
Reference in New Issue
Block a user