diff options
author | Jeff Sharkey <jsharkey@android.com> | 2016-07-08 19:11:48 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-07-08 19:11:48 +0000 |
commit | a637f17150279eb8a7d9110fdf6feabee9fbaf8d (patch) | |
tree | d7f40303895648b0c3a17bc163d1cbe6428e8132 /packages/ExternalStorageProvider | |
parent | 5c1dc014caf8d71f6c1b9e2562136d0254b518e0 (diff) | |
parent | 8ee0a67ba713f4476b5517b1555b3a8b2be4baa6 (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.java | 31 |
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 |