From 81cf085b0bab8219498702b9137c924de798d146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Wed, 17 Jul 2024 20:48:40 +0200 Subject: [PATCH 1/6] feat: allow empty content-type on android --- .../kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt index 2d9bf628..a18130ea 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt @@ -338,12 +338,14 @@ class DownloadWorker(context: Context, params: WorkerParameters) : break } httpConn!!.connect() - val contentType: String + val contentType: String? if ((responseCode == HttpURLConnection.HTTP_OK || isResume && responseCode == HttpURLConnection.HTTP_PARTIAL) && !isStopped) { contentType = httpConn.contentType val contentLength: Long = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) httpConn.contentLengthLong else httpConn.contentLength.toLong() - log("Content-Type = $contentType") + if (contentType != null){ + log("Content-Type = $contentType") + } log("Content-Length = $contentLength") val charset = getCharsetFromContentType(contentType) log("Charset = $charset") From 9659216a49c3f6d54708d943928d55760f8d6be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Wed, 17 Jul 2024 21:01:37 +0200 Subject: [PATCH 2/6] feat: add nullable places for content type --- .../main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt index a18130ea..f3d4f9d4 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt @@ -519,7 +519,7 @@ class DownloadWorker(context: Context, params: WorkerParameters) : * Create a file inside the Download folder using MediaStore API */ @RequiresApi(Build.VERSION_CODES.Q) - private fun createFileInPublicDownloadsDir(filename: String?, mimeType: String): Uri? { + private fun createFileInPublicDownloadsDir(filename: String?, mimeType: String?): Uri? { val collection: Uri = MediaStore.Downloads.EXTERNAL_CONTENT_URI val values = ContentValues() values.put(MediaStore.Downloads.DISPLAY_NAME, filename) @@ -772,7 +772,7 @@ class DownloadWorker(context: Context, params: WorkerParameters) : return contentType?.split(";")?.toTypedArray()?.get(0)?.trim { it <= ' ' } } - private fun isImageOrVideoFile(contentType: String): Boolean { + private fun isImageOrVideoFile(contentType: String?): Boolean { val newContentType = getContentTypeWithoutCharset(contentType) return newContentType != null && (newContentType.startsWith("image/") || newContentType.startsWith("video")) } From 825de55f13fddffedc4bc89e446d1daf82fe2c5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Thu, 18 Jul 2024 14:53:25 +0200 Subject: [PATCH 3/6] feat: add nullable mimeType do worker --- .../src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt index ed3da7f4..b07ac219 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt @@ -9,7 +9,7 @@ data class DownloadTask( var filename: String?, var savedDir: String, var headers: String, - var mimeType: String, + var mimeType: String?, var resumable: Boolean, var showNotification: Boolean, var openFileFromNotification: Boolean, From a1e4474b54f857e644a8cecba5d3b8857f379cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Thu, 18 Jul 2024 14:53:25 +0200 Subject: [PATCH 4/6] fix: add unknown type --- .../src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt index ed3da7f4..b07ac219 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt @@ -9,7 +9,7 @@ data class DownloadTask( var filename: String?, var savedDir: String, var headers: String, - var mimeType: String, + var mimeType: String?, var resumable: Boolean, var showNotification: Boolean, var openFileFromNotification: Boolean, From d0b89750e0219a5f67334a487a6a94ce0aaf036d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Thu, 18 Jul 2024 15:01:46 +0200 Subject: [PATCH 5/6] fix: add unknown type --- .../src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt | 2 +- android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt index b07ac219..ed3da7f4 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt @@ -9,7 +9,7 @@ data class DownloadTask( var filename: String?, var savedDir: String, var headers: String, - var mimeType: String?, + var mimeType: String, var resumable: Boolean, var showNotification: Boolean, var openFileFromNotification: Boolean, diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt index 1fffd964..a3f7b3da 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt @@ -199,7 +199,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { val db = dbHelper.writableDatabase val values = ContentValues() values.put(TaskEntry.COLUMN_NAME_FILE_NAME, filename) - values.put(TaskEntry.COLUMN_NAME_MIME_TYPE, mimeType) + values.put(TaskEntry.COLUMN_NAME_MIME_TYPE, mimeType ?: "unknown") db.beginTransaction() try { db.update( From fb2dc9a37e4d99f686e4a4c45150a30d52bbc83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=A0imon=C3=ADk?= Date: Thu, 25 Jul 2024 09:38:59 +0200 Subject: [PATCH 6/6] chore: fix lint issues --- .../main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt index f3d4f9d4..d5d68e3d 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt @@ -343,7 +343,7 @@ class DownloadWorker(context: Context, params: WorkerParameters) : contentType = httpConn.contentType val contentLength: Long = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) httpConn.contentLengthLong else httpConn.contentLength.toLong() - if (contentType != null){ + if (contentType != null) { log("Content-Type = $contentType") } log("Content-Length = $contentLength")