summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBeYkeRYkt <beykerykt@gmail.com>2020-06-01 20:29:25 +0900
committerBruno Martins <bgcngm@gmail.com>2020-06-08 22:25:52 +0200
commit7fb12a53797692334169c128aa881b296178d300 (patch)
treeedc6a857f883afadb2b10f05f8af4ef24660511c
parent24b6e974da038425f7ecfc7ae12a488b0c924e39 (diff)
downloadandroid_packages_providers_MediaProvider-lineage-17.1.tar.gz
android_packages_providers_MediaProvider-lineage-17.1.tar.bz2
android_packages_providers_MediaProvider-lineage-17.1.zip
MediaProvider: Fix sorting by DATE_TAKENlineage-17.1
* Verify that originalTime is valid. If originalTime is not valid, try using the DateTime tag. If both of these variables are not valid, then just return lastModifiedTime. * Return originalTime when the image has originalTime but does not have gpsTime and lastModifiedTime to correctly report the time. Change-Id: Id93efcea937ca39037db431108dd0dbee43c29b7
-rw-r--r--src/com/android/providers/media/scan/ModernMediaScanner.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/android/providers/media/scan/ModernMediaScanner.java b/src/com/android/providers/media/scan/ModernMediaScanner.java
index d9e9859c..fe0e5cf7 100644
--- a/src/com/android/providers/media/scan/ModernMediaScanner.java
+++ b/src/com/android/providers/media/scan/ModernMediaScanner.java
@@ -818,6 +818,18 @@ public class ModernMediaScanner implements MediaScanner {
static @NonNull Optional<Long> parseOptionalDateTaken(@NonNull ExifInterface exif,
@CurrentTimeMillisLong long lastModifiedTime) {
final long originalTime = exif.getDateTimeOriginal();
+
+ // First check that originalTime is valid
+ if (originalTime == -1) {
+ // Try use DateTime tag if originalTime is not valid
+ final long dateTime = exif.getDateTime();
+ if (dateTime == -1) {
+ // If originalTime and dateTime is not valid, then just return lastModifiedTime
+ return Optional.of(lastModifiedTime);
+ }
+ return Optional.of(dateTime);
+ }
+
if (exif.hasAttribute(ExifInterface.TAG_OFFSET_TIME_ORIGINAL)) {
// We have known offset information, return it directly!
return Optional.of(originalTime);
@@ -839,7 +851,7 @@ public class ModernMediaScanner implements MediaScanner {
return Optional.of(originalTime + rounded);
}
}
- return Optional.empty();
+ return Optional.of(originalTime);
}
}