Add MIME type mapping for image/jxl (fixes #7117)

(cherry picked from commit 591df8abcc)
This commit is contained in:
arkon 2022-07-03 22:33:15 -04:00 committed by Jays2Kings
parent 9dcbc90c93
commit 09f9bbf4d9
2 changed files with 20 additions and 2 deletions

View file

@ -5,7 +5,6 @@ import android.content.Intent
import android.os.Build
import android.os.Environment
import android.provider.Settings
import android.webkit.MimeTypeMap
import androidx.core.net.toUri
import com.hippo.unifile.UniFile
import com.jakewharton.rxrelay.BehaviorRelay
@ -520,7 +519,7 @@ class Downloader(
// Else read magic numbers.
?: ImageUtil.findImageType { file.openInputStream() }?.mime
return MimeTypeMap.getSingleton().getExtensionFromMimeType(mime) ?: "jpg"
return ImageUtil.getExtensionFromMimeType(mime)
}
private fun splitTallImageIfNeeded(page: Page, tmpDir: UniFile): Boolean {

View file

@ -17,6 +17,13 @@ import android.os.Build
import androidx.annotation.ColorInt
import com.hippo.unifile.UniFile
import eu.kanade.tachiyomi.R
import android.webkit.MimeTypeMap
import androidx.core.graphics.alpha
import androidx.core.graphics.applyCanvas
import androidx.core.graphics.blue
import androidx.core.graphics.createBitmap
import androidx.core.graphics.green
import androidx.core.graphics.red
import tachiyomi.decoder.Format
import tachiyomi.decoder.ImageDecoder
import timber.log.Timber
@ -74,6 +81,12 @@ object ImageUtil {
else 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
@ -587,4 +600,10 @@ object ImageUtil {
if (resetAfterExtraction) imageStream.reset()
return options
}
// Android doesn't include some mappings
private val SUPPLEMENTARY_MIMETYPE_MAPPING = mapOf(
// https://issuetracker.google.com/issues/182703810
"image/jxl" to "jxl",
)
}