summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2010-01-21 17:12:45 -0800
committerMarco Nelissen <marcone@google.com>2010-01-21 17:12:45 -0800
commit35b002a9c873fb40116179c8626b9841b0abae74 (patch)
treed0662ee02b1f1177045136c3e2fd736ea66716a1 /media/java
parent051ab623342746b6e25676c740f6104989902de6 (diff)
downloadframeworks_base-35b002a9c873fb40116179c8626b9841b0abae74.zip
frameworks_base-35b002a9c873fb40116179c8626b9841b0abae74.tar.gz
frameworks_base-35b002a9c873fb40116179c8626b9841b0abae74.tar.bz2
Make the media scanner disregard database entries that do not have
absolute path names. This allows us to store other things (perhaps with http or content URIs) in the database, without the media scanner removing them again.
Diffstat (limited to 'media/java')
-rw-r--r--media/java/android/media/MediaScanner.java49
1 files changed, 32 insertions, 17 deletions
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 3a2f47a..fcb02f4 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -920,12 +920,17 @@ public class MediaScanner
String path = c.getString(PATH_AUDIO_COLUMN_INDEX);
long lastModified = c.getLong(DATE_MODIFIED_AUDIO_COLUMN_INDEX);
- String key = path;
- if (mCaseInsensitivePaths) {
- key = path.toLowerCase();
+ // Only consider entries with absolute path names.
+ // This allows storing URIs in the database without the
+ // media scanner removing them.
+ if (path.startsWith("/")) {
+ String key = path;
+ if (mCaseInsensitivePaths) {
+ key = path.toLowerCase();
+ }
+ mFileCache.put(key, new FileCacheEntry(mAudioUri, rowId, path,
+ lastModified));
}
- mFileCache.put(key, new FileCacheEntry(mAudioUri, rowId, path,
- lastModified));
}
} finally {
c.close();
@@ -948,12 +953,17 @@ public class MediaScanner
String path = c.getString(PATH_VIDEO_COLUMN_INDEX);
long lastModified = c.getLong(DATE_MODIFIED_VIDEO_COLUMN_INDEX);
- String key = path;
- if (mCaseInsensitivePaths) {
- key = path.toLowerCase();
+ // Only consider entries with absolute path names.
+ // This allows storing URIs in the database without the
+ // media scanner removing them.
+ if (path.startsWith("/")) {
+ String key = path;
+ if (mCaseInsensitivePaths) {
+ key = path.toLowerCase();
+ }
+ mFileCache.put(key, new FileCacheEntry(mVideoUri, rowId, path,
+ lastModified));
}
- mFileCache.put(key, new FileCacheEntry(mVideoUri, rowId, path,
- lastModified));
}
} finally {
c.close();
@@ -978,12 +988,17 @@ public class MediaScanner
String path = c.getString(PATH_IMAGES_COLUMN_INDEX);
long lastModified = c.getLong(DATE_MODIFIED_IMAGES_COLUMN_INDEX);
- String key = path;
- if (mCaseInsensitivePaths) {
- key = path.toLowerCase();
- }
- mFileCache.put(key, new FileCacheEntry(mImagesUri, rowId, path,
- lastModified));
+ // Only consider entries with absolute path names.
+ // This allows storing URIs in the database without the
+ // media scanner removing them.
+ if (path.startsWith("/")) {
+ String key = path;
+ if (mCaseInsensitivePaths) {
+ key = path.toLowerCase();
+ }
+ mFileCache.put(key, new FileCacheEntry(mImagesUri, rowId, path,
+ lastModified));
+ }
}
} finally {
c.close();
@@ -1003,7 +1018,7 @@ public class MediaScanner
if (c != null) {
try {
while (c.moveToNext()) {
- String path = c.getString(PATH_IMAGES_COLUMN_INDEX);
+ String path = c.getString(PATH_PLAYLISTS_COLUMN_INDEX);
if (path != null && path.length() > 0) {
long rowId = c.getLong(ID_PLAYLISTS_COLUMN_INDEX);