summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2009-09-03 10:49:55 -0700
committerMarco Nelissen <marcone@google.com>2009-09-03 11:22:28 -0700
commit8b0466170082fdf12f78d7b70358002520e99e9b (patch)
tree5ff6b49f1d9373e654df1a3a324883a05b6eb8a8 /media/java
parent04e1faf0f030ddb360180289fb798adbb3348dd4 (diff)
downloadframeworks_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.java16
-rw-r--r--media/java/android/media/MediaScannerClient.java4
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.
*/