mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 05:23:28 +01:00 
			
		
		
		
	Bugfix: Infinite load on corrupt App JSON (#378)
This commit is contained in:
		| @@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart'; | |||||||
| // ignore: implementation_imports | // ignore: implementation_imports | ||||||
| import 'package:easy_localization/src/localization.dart'; | import 'package:easy_localization/src/localization.dart'; | ||||||
|  |  | ||||||
| const String currentVersion = '0.11.12'; | const String currentVersion = '0.11.13'; | ||||||
| const String currentReleaseTag = | const String currentReleaseTag = | ||||||
|     'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES |     'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES | ||||||
|  |  | ||||||
|   | |||||||
| @@ -571,7 +571,21 @@ class AppsProvider with ChangeNotifier { | |||||||
|     List<App> newApps = (await getAppsDir()) |     List<App> newApps = (await getAppsDir()) | ||||||
|         .listSync() |         .listSync() | ||||||
|         .where((item) => item.path.toLowerCase().endsWith('.json')) |         .where((item) => item.path.toLowerCase().endsWith('.json')) | ||||||
|         .map((e) => App.fromJson(jsonDecode(File(e.path).readAsStringSync()))) |         .map((e) { | ||||||
|  |           try { | ||||||
|  |             return App.fromJson(jsonDecode(File(e.path).readAsStringSync())); | ||||||
|  |           } catch (err) { | ||||||
|  |             if (err is FormatException) { | ||||||
|  |               logs.add('Corrupt JSON when loading App (will be ignored): $e'); | ||||||
|  |               e.renameSync('${e.path}.corrupt'); | ||||||
|  |               return App( | ||||||
|  |                   '', '', '', '', '', '', [], 0, {}, DateTime.now(), false); | ||||||
|  |             } else { | ||||||
|  |               rethrow; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |         .where((element) => element.id.isNotEmpty) | ||||||
|         .toList(); |         .toList(); | ||||||
|     var idsToDelete = apps.values |     var idsToDelete = apps.values | ||||||
|         .map((e) => e.app.id) |         .map((e) => e.app.id) | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev | |||||||
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | ||||||
| # In Windows, build-name is used as the major, minor, and patch parts | # In Windows, build-name is used as the major, minor, and patch parts | ||||||
| # of the product and file versions while build-number is used as the build suffix. | # of the product and file versions while build-number is used as the build suffix. | ||||||
| version: 0.11.12+133 # When changing this, update the tag in main() accordingly | version: 0.11.13+134 # When changing this, update the tag in main() accordingly | ||||||
|  |  | ||||||
| environment: | environment: | ||||||
|   sdk: '>=2.18.2 <3.0.0' |   sdk: '>=2.18.2 <3.0.0' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user