mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 05:23:28 +01:00 
			
		
		
		
	Fixed "return after delete" bug (#359)
This commit is contained in:
		| @@ -210,7 +210,7 @@ class _ObtainiumState extends State<Obtainium> { | ||||
|               {'includePrereleases': true}, | ||||
|               null, | ||||
|               false) | ||||
|         ]); | ||||
|         ], onlyIfExists: false); | ||||
|       } | ||||
|       if (!supportedLocales | ||||
|               .map((e) => e.languageCode) | ||||
|   | ||||
| @@ -149,7 +149,7 @@ class _AddAppPageState extends State<AddAppPage> { | ||||
|             app.installedVersion = app.latestVersion; | ||||
|           } | ||||
|           app.categories = pickedCategories; | ||||
|           await appsProvider.saveApps([app]); | ||||
|           await appsProvider.saveApps([app], onlyIfExists: false); | ||||
|  | ||||
|           return app; | ||||
|         } | ||||
|   | ||||
| @@ -628,7 +628,8 @@ class AppsProvider with ChangeNotifier { | ||||
|   } | ||||
|  | ||||
|   Future<void> saveApps(List<App> apps, | ||||
|       {bool attemptToCorrectInstallStatus = true}) async { | ||||
|       {bool attemptToCorrectInstallStatus = true, | ||||
|       bool onlyIfExists = true}) async { | ||||
|     attemptToCorrectInstallStatus = | ||||
|         attemptToCorrectInstallStatus && (await doesInstalledAppsPluginWork()); | ||||
|     for (var app in apps) { | ||||
| @@ -639,9 +640,15 @@ class AppsProvider with ChangeNotifier { | ||||
|       } | ||||
|       File('${(await getAppsDir()).path}/${app.id}.json') | ||||
|           .writeAsStringSync(jsonEncode(app.toJson())); | ||||
|       this.apps.update( | ||||
|           app.id, (value) => AppInMemory(app, value.downloadProgress, info), | ||||
|           ifAbsent: () => AppInMemory(app, null, info)); | ||||
|       try { | ||||
|         this.apps.update( | ||||
|             app.id, (value) => AppInMemory(app, value.downloadProgress, info), | ||||
|             ifAbsent: onlyIfExists ? null : () => AppInMemory(app, null, info)); | ||||
|       } catch (e) { | ||||
|         if (e is! ArgumentError || e.name != 'key') { | ||||
|           rethrow; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     notifyListeners(); | ||||
|   } | ||||
| @@ -824,7 +831,7 @@ class AppsProvider with ChangeNotifier { | ||||
|         a.installedVersion = apps[a.id]?.app.installedVersion; | ||||
|       } | ||||
|     } | ||||
|     await saveApps(importedApps); | ||||
|     await saveApps(importedApps, onlyIfExists: false); | ||||
|     notifyListeners(); | ||||
|     return importedApps.length; | ||||
|   } | ||||
| @@ -844,7 +851,7 @@ class AppsProvider with ChangeNotifier { | ||||
|       if (apps.containsKey(app.id)) { | ||||
|         errorsMap.addAll({app.id: tr('appAlreadyAdded')}); | ||||
|       } else { | ||||
|         await saveApps([app]); | ||||
|         await saveApps([app], onlyIfExists: false); | ||||
|       } | ||||
|     } | ||||
|     List<List<String>> errors = | ||||
|   | ||||
		Reference in New Issue
	
	Block a user