mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-19 13:09:30 +02:00
Better error message for file deletion failures (#2298)
This commit is contained in:
@@ -234,6 +234,14 @@ Future<String?> checkETagHeader(String url,
|
||||
.toString();
|
||||
}
|
||||
|
||||
deleteFile(File file) {
|
||||
try {
|
||||
file.deleteSync(recursive: true);
|
||||
} on PathAccessException catch (e) {
|
||||
throw ObtainiumError(tr('fileDeletionError', args: [e.path ?? tr('unknown')]));
|
||||
}
|
||||
}
|
||||
|
||||
Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
Function? onProgress, String destDir,
|
||||
{bool useExisting = true,
|
||||
@@ -348,7 +356,7 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
reqHeaders.addAll({'range': 'bytes=$rangeStart-${fullContentLength - 1}'});
|
||||
sink = tempDownloadedFile.openWrite(mode: FileMode.writeOnlyAppend);
|
||||
} else if (tempDownloadedFile.existsSync()) {
|
||||
tempDownloadedFile.deleteSync(recursive: true);
|
||||
deleteFile(tempDownloadedFile);
|
||||
}
|
||||
var responseWithClient =
|
||||
await sourceRequestStreamResponse('GET', url, reqHeaders, {});
|
||||
@@ -404,7 +412,7 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
onProgress(progress);
|
||||
}
|
||||
if (response.statusCode < 200 || response.statusCode > 299) {
|
||||
tempDownloadedFile.deleteSync(recursive: true);
|
||||
deleteFile(tempDownloadedFile);
|
||||
throw response.reasonPhrase;
|
||||
}
|
||||
if (tempDownloadedFile.existsSync()) {
|
||||
@@ -797,9 +805,9 @@ class AppsProvider with ChangeNotifier {
|
||||
await pm.getPackageArchiveInfo(archiveFilePath: file.file.path);
|
||||
if (newInfo == null) {
|
||||
try {
|
||||
file.file.deleteSync(recursive: true);
|
||||
deleteFile(file.file);
|
||||
for (var a in additionalAPKs) {
|
||||
a.file.deleteSync(recursive: true);
|
||||
deleteFile(a.file);
|
||||
}
|
||||
} catch (e) {
|
||||
//
|
||||
@@ -839,7 +847,7 @@ class AppsProvider with ChangeNotifier {
|
||||
bool installed = false;
|
||||
if (code != null && code != 0 && code != 3) {
|
||||
try {
|
||||
file.file.deleteSync(recursive: true);
|
||||
deleteFile(file.file);
|
||||
} catch (e) {
|
||||
//
|
||||
} finally {
|
||||
@@ -1511,7 +1519,7 @@ class AppsProvider with ChangeNotifier {
|
||||
await Future.wait(appIds.map((appId) async {
|
||||
File file = File('${(await getAppsDir()).path}/$appId.json');
|
||||
if (file.existsSync()) {
|
||||
file.deleteSync(recursive: true);
|
||||
deleteFile(file);
|
||||
}
|
||||
apkFiles
|
||||
.where(
|
||||
|
Reference in New Issue
Block a user