|
@@ -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",
|
|
|
+ )
|
|
|
}
|