From 752749bafe6d8a02d4b5facac5d60b3d0049f34f Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Wed, 28 Oct 2020 11:22:57 +0900 Subject: [PATCH] info: prevent false positive media results (e.g. JPEG on Galaxy S7) --- .../thibault/aves/channel/calls/MetadataHandler.kt | 9 ++++++--- .../main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt | 5 +++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataHandler.kt index f847b5354..0c3026253 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataHandler.kt @@ -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()) { diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt b/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt index 876d4e36a..4571ad2e4 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt @@ -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) {