From ab53601b69249b5a8cb39b6fbd08a582b5174f33 Mon Sep 17 00:00:00 2001 From: Jenser Almeida Date: Thu, 18 Aug 2022 17:41:01 -0700 Subject: [PATCH 1/3] Deduplicate files names by adding a (#dedup-name) suffix on the file name (#620) --- .../flutterdownloader/DownloadWorker.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java b/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java index 3882a19f..628ca677 100644 --- a/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java +++ b/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java @@ -499,6 +499,28 @@ private void downloadFile(Context context, String fileURL, String savedDir, Stri private File createFileInAppSpecificDir(String filename, String savedDir) { File newFile = new File(savedDir, filename); try { + int deduplicationFileNumber = 0; + while (newFile.exists()) { + deduplicationFileNumber++; + int fileNameExtensionIndex = filename.lastIndexOf("."); + String fileNameWithoutExtension; + String fileExtension; + if (fileNameExtensionIndex != -1) { + fileNameWithoutExtension = filename.substring(0, fileNameExtensionIndex); + if (fileNameExtensionIndex + 1 < filename.length()) { + fileExtension = "." + filename.substring(fileNameExtensionIndex + 1); + } else if (fileNameExtensionIndex + 1 == filename.length()) { + fileExtension = "."; + } else { + fileExtension = ""; + } + } else { + fileNameWithoutExtension = filename; + fileExtension = ""; + } + newFile = new File(savedDir, + fileNameWithoutExtension + "(" + deduplicationFileNumber + ")" + fileExtension); + } boolean rs = newFile.createNewFile(); if (rs) { return newFile; From 7cf781a2da8eb058b7fb923fedbae94bd5f7eb7c Mon Sep 17 00:00:00 2001 From: Jenser Almeida Date: Thu, 18 Aug 2022 18:18:50 -0700 Subject: [PATCH 2/3] Update the file name on the notification (#620) --- .../main/java/vn/hunghd/flutterdownloader/DownloadWorker.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java b/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java index 628ca677..acc5fdbe 100644 --- a/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java +++ b/android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java @@ -403,6 +403,10 @@ private void downloadFile(Context context, String fileURL, String savedDir, Stri outputStream = context.getContentResolver().openOutputStream(uri, "w"); } else { File file = createFileInAppSpecificDir(filename, savedDir); + if (file.getName() != filename) { + filename = file.getName(); + taskDao.updateTask(getId().toString(), filename, contentType); + } savedFilePath = file.getPath(); outputStream = new FileOutputStream(file, false); } From cda132456f3b4b898d064e1442464f72e1dfa4b8 Mon Sep 17 00:00:00 2001 From: Jenser Almeida Date: Sun, 15 Dec 2024 03:18:25 -0800 Subject: [PATCH 3/3] add namespace for gradle 8 --- .vscode/settings.json | 3 +++ android/build.gradle | 1 + android/src/main/AndroidManifest.xml | 3 +-- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..c5f3f6b9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 56793520..fd2b4f62 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -25,6 +25,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 31 + namespace 'vn.hunghd.flutterdownloader' defaultConfig { minSdkVersion 19 diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 72e8c500..5f532159 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - +