info: hide default media dates

This commit is contained in:
Thibault Deckers 2020-10-28 11:11:32 +09:00
parent 964c7211a1
commit 949befe9cc
3 changed files with 9 additions and 12 deletions

View file

@ -31,12 +31,12 @@ import deckers.thibault.aves.metadata.ExifInterfaceHelper.describeAll
import deckers.thibault.aves.metadata.ExifInterfaceHelper.getSafeDateMillis
import deckers.thibault.aves.metadata.ExifInterfaceHelper.getSafeInt
import deckers.thibault.aves.metadata.MediaMetadataRetrieverHelper
import deckers.thibault.aves.metadata.MediaMetadataRetrieverHelper.getSafeDateMillis
import deckers.thibault.aves.metadata.MediaMetadataRetrieverHelper.getSafeDescription
import deckers.thibault.aves.metadata.MediaMetadataRetrieverHelper.getSafeInt
import deckers.thibault.aves.metadata.Metadata
import deckers.thibault.aves.metadata.Metadata.getRotationDegreesForExifCode
import deckers.thibault.aves.metadata.Metadata.isFlippedForExifCode
import deckers.thibault.aves.metadata.Metadata.parseVideoMetadataDate
import deckers.thibault.aves.metadata.MetadataExtractorHelper.getSafeBoolean
import deckers.thibault.aves.metadata.MetadataExtractorHelper.getSafeDateMillis
import deckers.thibault.aves.metadata.MetadataExtractorHelper.getSafeDescription
@ -317,15 +317,7 @@ class MetadataHandler(private val context: Context) : MethodCallHandler {
val retriever = StorageUtils.openMetadataRetriever(context, uri) ?: return metadataMap
try {
retriever.getSafeInt(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION) { metadataMap[KEY_ROTATION_DEGREES] = it }
val dateString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE)
if (dateString != null) {
val dateMillis = parseVideoMetadataDate(dateString)
// some entries have an invalid default date (19040101T000000.000Z) that is before Epoch time
if (dateMillis > 0) {
metadataMap[KEY_DATE_MILLIS] = dateMillis
}
}
retriever.getSafeDateMillis(MediaMetadataRetriever.METADATA_KEY_DATE) { metadataMap[KEY_DATE_MILLIS] = it }
val locationString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_LOCATION)
if (locationString != null) {

View file

@ -133,11 +133,16 @@ object MediaMetadataRetrieverHelper {
else -> value
}
}
// hide `0` values
// hide default or invalid values
MediaMetadataRetriever.METADATA_KEY_COMPILATION,
MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER,
MediaMetadataRetriever.METADATA_KEY_YEAR -> if (value != "0") value else null
MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER -> if (value != "0/0") value else null
MediaMetadataRetriever.METADATA_KEY_DATE -> {
val dateMillis = Metadata.parseVideoMetadataDate(value)
// some entries have an invalid default date (19040101T000000.000Z) that is before Epoch time
if (dateMillis > 0) value else null
}
// hide
MediaMetadataRetriever.METADATA_KEY_LOCATION,
MediaMetadataRetriever.METADATA_KEY_MIMETYPE -> null

View file

@ -62,7 +62,7 @@ object Metadata {
}
val date: Date = try {
val parser = SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.US)
val parser = SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.ROOT)
parser.timeZone = timeZone ?: TimeZone.getTimeZone("GMT")
parser.parse(dateString)
} catch (e: ParseException) {