Slightly better error reporting for failed xapk install

This commit is contained in:
Imran Remtulla
2023-08-19 01:40:14 -04:00
parent a2571e61a8
commit 6baf6ccf4b

View File

@@ -391,7 +391,7 @@ class AppsProvider with ChangeNotifier {
// If 0 APKs installed, throw the first install error encountered // If 0 APKs installed, throw the first install error encountered
try { try {
var somethingInstalled = false; var somethingInstalled = false;
Object? firstError; MultiAppMultiError errors = MultiAppMultiError();
for (var file in dir.extracted for (var file in dir.extracted
.listSync(recursive: true, followLinks: false) .listSync(recursive: true, followLinks: false)
.whereType<File>()) { .whereType<File>()) {
@@ -402,7 +402,7 @@ class AppsProvider with ChangeNotifier {
} catch (e) { } catch (e) {
logs.add( logs.add(
'Could not install APK from XAPK \'${file.path}\': ${e.toString()}'); 'Could not install APK from XAPK \'${file.path}\': ${e.toString()}');
firstError ??= e; errors.add(dir.appId, e.toString());
} }
} else if (file.path.toLowerCase().endsWith('.obb')) { } else if (file.path.toLowerCase().endsWith('.obb')) {
await moveObbFile(file, dir.appId); await moveObbFile(file, dir.appId);
@@ -410,8 +410,8 @@ class AppsProvider with ChangeNotifier {
} }
if (somethingInstalled) { if (somethingInstalled) {
dir.file.delete(recursive: true); dir.file.delete(recursive: true);
} else if (firstError != null) { } else if (errors.content.isNotEmpty) {
throw firstError; throw errors;
} }
} finally { } finally {
dir.extracted.delete(recursive: true); dir.extracted.delete(recursive: true);