mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01: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/pages/settings.dart';
 | 
				
			||||||
import 'package:obtainium/providers/apps_provider.dart';
 | 
					import 'package:obtainium/providers/apps_provider.dart';
 | 
				
			||||||
import 'package:obtainium/providers/settings_provider.dart';
 | 
					import 'package:obtainium/providers/settings_provider.dart';
 | 
				
			||||||
 | 
					import 'package:obtainium/providers/source_provider.dart';
 | 
				
			||||||
import 'package:provider/provider.dart';
 | 
					import 'package:provider/provider.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HomePage extends StatefulWidget {
 | 
					class HomePage extends StatefulWidget {
 | 
				
			||||||
@@ -102,13 +103,22 @@ class _HomePageState extends State<HomePage> {
 | 
				
			|||||||
                  }) !=
 | 
					                  }) !=
 | 
				
			||||||
              null) {
 | 
					              null) {
 | 
				
			||||||
            // ignore: use_build_context_synchronously
 | 
					            // ignore: use_build_context_synchronously
 | 
				
			||||||
            var result = await context.read<AppsProvider>().import(
 | 
					            var appsProvider = await context.read<AppsProvider>();
 | 
				
			||||||
                action == 'app'
 | 
					            var result = await appsProvider.import(action == 'app'
 | 
				
			||||||
                ? '{ "apps": [$dataStr] }'
 | 
					                ? '{ "apps": [$dataStr] }'
 | 
				
			||||||
                : '{ "apps": $dataStr }');
 | 
					                : '{ "apps": $dataStr }');
 | 
				
			||||||
            // ignore: use_build_context_synchronously
 | 
					            // ignore: use_build_context_synchronously
 | 
				
			||||||
            showMessage(
 | 
					            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 {
 | 
					        } else {
 | 
				
			||||||
          throw ObtainiumError(tr('unknown'));
 | 
					          throw ObtainiumError(tr('unknown'));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -144,7 +144,7 @@ class _ImportExportPageState extends State<ImportExportPage> {
 | 
				
			|||||||
            appsProvider.addMissingCategories(settingsProvider);
 | 
					            appsProvider.addMissingCategories(settingsProvider);
 | 
				
			||||||
            showMessage(
 | 
					            showMessage(
 | 
				
			||||||
                '${tr('importedX', args: [
 | 
					                '${tr('importedX', args: [
 | 
				
			||||||
                      plural('apps', value.key)
 | 
					                      plural('apps', value.key.length)
 | 
				
			||||||
                    ])}${value.value ? ' + ${tr('settings')}' : ''}',
 | 
					                    ])}${value.value ? ' + ${tr('settings')}' : ''}',
 | 
				
			||||||
                context);
 | 
					                context);
 | 
				
			||||||
          });
 | 
					          });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1516,7 +1516,7 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
    return returnPath;
 | 
					    return returnPath;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<MapEntry<int, bool>> import(String appsJSON) async {
 | 
					  Future<MapEntry<List<App>, bool>> import(String appsJSON) async {
 | 
				
			||||||
    var decodedJSON = jsonDecode(appsJSON);
 | 
					    var decodedJSON = jsonDecode(appsJSON);
 | 
				
			||||||
    var newFormat = decodedJSON is! List;
 | 
					    var newFormat = decodedJSON is! List;
 | 
				
			||||||
    List<App> importedApps =
 | 
					    List<App> importedApps =
 | 
				
			||||||
@@ -1550,8 +1550,8 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return MapEntry<int, bool>(
 | 
					    return MapEntry<List<App>, bool>(
 | 
				
			||||||
        importedApps.length, newFormat && decodedJSON['settings'] != null);
 | 
					        importedApps, newFormat && decodedJSON['settings'] != null);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user