summaryrefslogtreecommitdiff
path: root/packages/ExternalStorageProvider
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2016-07-08 19:11:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-07-08 19:11:48 +0000
commita637f17150279eb8a7d9110fdf6feabee9fbaf8d (patch)
treed7f40303895648b0c3a17bc163d1cbe6428e8132 /packages/ExternalStorageProvider
parent5c1dc014caf8d71f6c1b9e2562136d0254b518e0 (diff)
parent8ee0a67ba713f4476b5517b1555b3a8b2be4baa6 (diff)
Merge \"Use visible paths when cleaning up MediaStore.\" into nyc-mr1-dev
am: 8ee0a67ba7 Change-Id: I387c13b1208ebdf05d03b4d172d538015dc3c6a5
Diffstat (limited to 'packages/ExternalStorageProvider')
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java31
1 files changed, 17 insertions, 14 deletions
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index 62f33bf490a8..a3070bddd0f8 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -492,23 +492,26 @@ public class ExternalStorageProvider extends DocumentsProvider {
throw new IllegalStateException("Failed to delete " + file);
}
- final ContentResolver resolver = getContext().getContentResolver();
- final Uri externalUri = MediaStore.Files.getContentUri("external");
+ final File visibleFile = getFileForDocId(docId, true);
+ if (visibleFile != null) {
+ final ContentResolver resolver = getContext().getContentResolver();
+ final Uri externalUri = MediaStore.Files.getContentUri("external");
+
+ // Remove media store entries for any files inside this directory, using
+ // path prefix match. Logic borrowed from MtpDatabase.
+ if (isDirectory) {
+ final String path = visibleFile.getAbsolutePath() + "/";
+ resolver.delete(externalUri,
+ "_data LIKE ?1 AND lower(substr(_data,1,?2))=lower(?3)",
+ new String[] { path + "%", Integer.toString(path.length()), path });
+ }
- // Remove media store entries for any files inside this directory, using
- // path prefix match. Logic borrowed from MtpDatabase.
- if (isDirectory) {
- final String path = file.getAbsolutePath() + "/";
+ // Remove media store entry for this exact file.
+ final String path = visibleFile.getAbsolutePath();
resolver.delete(externalUri,
- "_data LIKE ?1 AND lower(substr(_data,1,?2))=lower(?3)",
- new String[] { path + "%", Integer.toString(path.length()), path });
+ "_data LIKE ?1 AND lower(_data)=lower(?2)",
+ new String[] { path, path });
}
-
- // Remove media store entry for this exact file.
- final String path = file.getAbsolutePath();
- resolver.delete(externalUri,
- "_data LIKE ?1 AND lower(_data)=lower(?2)",
- new String[] { path, path });
}
@Override