diff options
author | Marco Nelissen <marcone@google.com> | 2009-09-03 10:49:55 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2009-09-03 11:22:28 -0700 |
commit | 8b0466170082fdf12f78d7b70358002520e99e9b (patch) | |
tree | 5ff6b49f1d9373e654df1a3a324883a05b6eb8a8 /media/java | |
parent | 04e1faf0f030ddb360180289fb798adbb3348dd4 (diff) | |
download | frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.zip frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.tar.gz frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.tar.bz2 |
When encountering a .nomedia file, notify the MediaScannerClient,
so that it can erase the data column for entries that are in the
folder containing the .nomedia file. This prevents us from
deleting (via a delete trigger) files when somebody adds a
.nomedia file after the fact.
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/MediaScanner.java | 16 | ||||
-rw-r--r-- | media/java/android/media/MediaScannerClient.java | 4 |
2 files changed, 19 insertions, 1 deletions
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 3d5aae3..fcc76ca5 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -825,6 +825,22 @@ public class MediaScanner } } + public void addNoMediaFolder(String path) { + ContentValues values = new ContentValues(); + values.put(MediaStore.Images.ImageColumns.DATA, ""); + String [] pathSpec = new String[] {path + '%'}; + try { + mMediaProvider.update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values, + MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec); + mMediaProvider.update(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values, + MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec); + mMediaProvider.update(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values, + MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec); + } catch (RemoteException e) { + throw new RuntimeException(); + } + } + }; // end of anonymous MediaScannerClient instance private void prescan(String filePath) throws RemoteException { diff --git a/media/java/android/media/MediaScannerClient.java b/media/java/android/media/MediaScannerClient.java index cf1a8da..258c3b4 100644 --- a/media/java/android/media/MediaScannerClient.java +++ b/media/java/android/media/MediaScannerClient.java @@ -25,11 +25,13 @@ public interface MediaScannerClient public void scanFile(String path, String mimeType, long lastModified, long fileSize); + public void addNoMediaFolder(String path); + /** * Called by native code to return metadata extracted from media files. */ public void handleStringTag(String name, String value); - + /** * Called by native code to return mime type extracted from DRM content. */ |