From 872e7b7073fad8295e6314c73b87d7cb3f85d39c Mon Sep 17 00:00:00 2001 From: Ray Chen Date: Tue, 27 Mar 2012 23:37:41 +0800 Subject: Fix b/5353417 Images downloaded from browser are showing incorrect details (Time is shown as dec 31 1969) MediaScanner sets DATE_TAKEN with EXIF's datetime tag value. When this information is not available, ExifInterface will simply return -1 which is accidentally used by MediaScanner. Adding a check to avoid it so MediaProvider can calculate the date taken from last modified time instead. Change-Id: I305b93a6c5602cbb9f97c3bbd384d358bda030c6 --- media/java/android/media/MediaScanner.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index a08d6c37e1a4..87ab8ee8d413 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -839,7 +839,7 @@ public class MediaScanner // and EXIF local time is not less than 1 Day, otherwise MediaProvider // will use file time as taken time. time = exif.getDateTime(); - if (Math.abs(mLastModified * 1000 - time) >= 86400000) { + if (time != -1 && Math.abs(mLastModified * 1000 - time) >= 86400000) { values.put(Images.Media.DATE_TAKEN, time); } } @@ -1183,7 +1183,7 @@ public class MediaScanner static class MediaBulkDeleter { StringBuilder whereClause = new StringBuilder(); - ArrayList whereArgs = new ArrayList(100); + ArrayList whereArgs = new ArrayList(100); IContentProvider mProvider; Uri mBaseUri; -- cgit v1.2.3-59-g8ed1b