From e296d56e098482ecac082d950cf9c62c8a6ebf98 Mon Sep 17 00:00:00 2001 From: stevenyomi <95685115+stevenyomi@users.noreply.github.com> Date: Wed, 20 Jul 2022 21:10:41 +0800 Subject: [PATCH] Fix image MIME issues that cause download errors (#7562) * Downloader: ignore non-image MIME to prevent .bin extensions * ProgressResponseBody: allow null content type Co-authored-by: anenasa <84259093+anenasa@users.noreply.github.com> Co-authored-by: anenasa <84259093+anenasa@users.noreply.github.com> (cherry picked from commit 3547d0142f96c44da7fe1ee5bd6424fea679efa6) --- .../main/java/eu/kanade/tachiyomi/data/download/Downloader.kt | 2 +- .../java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 1653fe0ef4..3221168e76 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -465,7 +465,7 @@ class Downloader( */ private fun getImageExtension(response: Response, file: UniFile): String { // Read content type if available. - val mime = response.body?.contentType()?.let { ct -> "${ct.type}/${ct.subtype}" } + val mime = response.body?.contentType()?.run { if (type == "image") "image/$subtype" else null } // Else guess from the uri. ?: context.contentResolver.getType(file.uri) // Else read magic numbers. diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt b/app/src/main/java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt index ff56520b55..72248f17b7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/ProgressResponseBody.kt @@ -15,8 +15,8 @@ class ProgressResponseBody(private val responseBody: ResponseBody, private val p source(responseBody.source()).buffer() } - override fun contentType(): MediaType { - return responseBody.contentType()!! + override fun contentType(): MediaType? { + return responseBody.contentType() } override fun contentLength(): Long {