info: prevent false positive media results (e.g. JPEG on Galaxy S7)

This commit is contained in:
Thibault Deckers 2020-10-28 11:22:57 +09:00
parent 949befe9cc
commit 752749bafe
2 changed files with 11 additions and 3 deletions

View file

@ -49,6 +49,7 @@ import deckers.thibault.aves.utils.BitmapUtils
import deckers.thibault.aves.utils.LogUtils
import deckers.thibault.aves.utils.MimeTypes
import deckers.thibault.aves.utils.MimeTypes.isImage
import deckers.thibault.aves.utils.MimeTypes.isMultimedia
import deckers.thibault.aves.utils.MimeTypes.isSupportedByMetadataExtractor
import deckers.thibault.aves.utils.MimeTypes.isVideo
import deckers.thibault.aves.utils.StorageUtils
@ -150,9 +151,11 @@ class MetadataHandler(private val context: Context) : MethodCallHandler {
}
}
val mediaDir = getAllMetadataByMediaMetadataRetriever(uri)
if (mediaDir.isNotEmpty()) {
metadataMap[Metadata.DIR_MEDIA] = mediaDir
if (isMultimedia(mimeType)) {
val mediaDir = getAllMetadataByMediaMetadataRetriever(uri)
if (mediaDir.isNotEmpty()) {
metadataMap[Metadata.DIR_MEDIA] = mediaDir
}
}
if (metadataMap.isNotEmpty()) {

View file

@ -30,6 +30,11 @@ object MimeTypes {
fun isVideo(mimeType: String?) = mimeType != null && mimeType.startsWith(VIDEO)
fun isMultimedia(mimeType: String?) = when (mimeType) {
HEIC, HEIF -> true
else -> isVideo(mimeType)
}
// returns whether the specified MIME type represents
// a raster image format that allows an alpha channel
fun canHaveAlpha(mimeType: String?) = when (mimeType) {