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 732a1c2bc..485c0122c 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 @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.data.download import android.content.Context -import android.webkit.MimeTypeMap import com.hippo.unifile.UniFile import com.jakewharton.rxrelay.BehaviorRelay import com.jakewharton.rxrelay.PublishRelay @@ -472,7 +471,7 @@ class Downloader( // Else read magic numbers. ?: ImageUtil.findImageType { file.openInputStream() }?.mime - return MimeTypeMap.getSingleton().getExtensionFromMimeType(mime) ?: "jpg" + return ImageUtil.getExtensionFromMimeType(mime) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt index 22c9fc440..f50c9151d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt @@ -10,6 +10,7 @@ import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.os.Build +import android.webkit.MimeTypeMap import androidx.core.graphics.alpha import androidx.core.graphics.applyCanvas import androidx.core.graphics.blue @@ -56,6 +57,12 @@ object ImageUtil { return null } + fun getExtensionFromMimeType(mime: String?): String { + return MimeTypeMap.getSingleton().getExtensionFromMimeType(mime) + ?: SUPPLEMENTARY_MIMETYPE_MAPPING[mime] + ?: "jpg" + } + fun isAnimatedAndSupported(stream: InputStream): Boolean { try { val type = getImageType(stream) ?: return false @@ -392,4 +399,10 @@ object ImageUtil { private fun Int.isWhite(): Boolean = red + blue + green > 740 + + // Android doesn't include some mappings + private val SUPPLEMENTARY_MIMETYPE_MAPPING = mapOf( + // https://issuetracker.google.com/issues/182703810 + "image/jxl" to "jxl", + ) }