summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2011-03-29 13:29:42 -0700
committerMike Lockwood <lockwood@android.com>2011-05-04 10:41:20 -0400
commit7dd592298aefb7921afb86ced444d46cb30ac466 (patch)
treef26015755cdd56e6ffe4dae965eefe231d80308d /media
parentc535f7f291f0bda688efcee62f21cf44d0ebe38e (diff)
downloadframeworks_base-7dd592298aefb7921afb86ced444d46cb30ac466.zip
frameworks_base-7dd592298aefb7921afb86ced444d46cb30ac466.tar.gz
frameworks_base-7dd592298aefb7921afb86ced444d46cb30ac466.tar.bz2
DO NOT MERGE Fix media scanner uri handling.
If a file was originally considered a video file (because it had a .mp4 extension, for example), but was then discovered to have only an audio track, it would update the type, but not the URI for insertion into the media provider. Change-Id: Ie589c9b52b436d73e295609d21238b2b3e829502 Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media')
-rw-r--r--media/java/android/media/MediaScanner.java34
1 files changed, 13 insertions, 21 deletions
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 74d65d1..f096682 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -347,7 +347,6 @@ public class MediaScanner
private BitmapFactory.Options mBitmapOptions = new BitmapFactory.Options();
private static class FileCacheEntry {
- Uri mTableUri;
long mRowId;
String mPath;
long mLastModified;
@@ -355,8 +354,7 @@ public class MediaScanner
boolean mSeenInFileSystem;
boolean mLastModifiedChanged;
- FileCacheEntry(Uri tableUri, long rowId, String path, long lastModified, int format) {
- mTableUri = tableUri;
+ FileCacheEntry(long rowId, String path, long lastModified, int format) {
mRowId = rowId;
mPath = path;
mLastModified = lastModified;
@@ -367,7 +365,7 @@ public class MediaScanner
@Override
public String toString() {
- return mPath + " mTableUri: " + mTableUri + " mRowId: " + mRowId;
+ return mPath + " mRowId: " + mRowId;
}
}
@@ -491,23 +489,10 @@ public class MediaScanner
long delta = (entry != null) ? (lastModified - entry.mLastModified) : 0;
boolean wasModified = delta > 1 || delta < -1;
if (entry == null || wasModified) {
- Uri tableUri;
- if (isDirectory) {
- tableUri = mFilesUri;
- } else if (MediaFile.isVideoFileType(mFileType)) {
- tableUri = mVideoUri;
- } else if (MediaFile.isImageFileType(mFileType)) {
- tableUri = mImagesUri;
- } else if (MediaFile.isAudioFileType(mFileType)) {
- tableUri = mAudioUri;
- } else {
- tableUri = mFilesUri;
- }
if (wasModified) {
entry.mLastModified = lastModified;
- entry.mTableUri = tableUri;
} else {
- entry = new FileCacheEntry(tableUri, 0, path, lastModified,
+ entry = new FileCacheEntry(0, path, lastModified,
(isDirectory ? MtpConstants.FORMAT_ASSOCIATION : 0));
mFileCache.put(key, entry);
}
@@ -829,7 +814,14 @@ public class MediaScanner
}
}
- Uri tableUri = entry.mTableUri;
+ Uri tableUri = mFilesUri;
+ if (MediaFile.isVideoFileType(mFileType)) {
+ tableUri = mVideoUri;
+ } else if (MediaFile.isImageFileType(mFileType)) {
+ tableUri = mImagesUri;
+ } else if (MediaFile.isAudioFileType(mFileType)) {
+ tableUri = mAudioUri;
+ }
Uri result = null;
if (rowId == 0) {
if (mMtpObjectHandle != 0) {
@@ -1021,13 +1013,13 @@ public class MediaScanner
// Only consider entries with absolute path names.
// This allows storing URIs in the database without the
// media scanner removing them.
- if (path.startsWith("/")) {
+ if (path != null && path.startsWith("/")) {
String key = path;
if (mCaseInsensitivePaths) {
key = path.toLowerCase();
}
- FileCacheEntry entry = new FileCacheEntry(mFilesUri, rowId, path,
+ FileCacheEntry entry = new FileCacheEntry(rowId, path,
lastModified, format);
mFileCache.put(key, entry);
}