diff options
author | Sudheer Shanka <sudheersai@google.com> | 2019-06-12 18:49:30 -0700 |
---|---|---|
committer | Sudheer Shanka <sudheersai@google.com> | 2019-06-13 10:41:15 -0700 |
commit | bcafd4ab8ce6e2327275069d4dc3a83a3891c813 (patch) | |
tree | 872a186794289b788328c662d51e6fabc4489ba0 | |
parent | f66042e2d0e05fba2fd4baae0a46494e8dad5d07 (diff) | |
download | android_packages_providers_DownloadProvider-bcafd4ab8ce6e2327275069d4dc3a83a3891c813.tar.gz android_packages_providers_DownloadProvider-bcafd4ab8ce6e2327275069d4dc3a83a3891c813.tar.bz2 android_packages_providers_DownloadProvider-bcafd4ab8ce6e2327275069d4dc3a83a3891c813.zip |
Delegate deletion of mediaprovider downloads to FileSystemProvider.
Using ContentResolver.delete() directly on MediaProvider doesn't work
for uris corresponding to directories. For now, delegate this
deletion to FileSystemProvider which will try deleting all entries
regex-matching the file path.
Bug: 135031305
Test: manual
Change-Id: Iac18d0fd0be05758aaf2c03971d716592d96699b
-rw-r--r-- | src/com/android/providers/downloads/DownloadStorageProvider.java | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index 2ffe6ce8..fc7dd5ed 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -223,20 +223,12 @@ public class DownloadStorageProvider extends FileSystemProvider { // Delegate to real provider final long token = Binder.clearCallingIdentity(); try { - if (RawDocumentsHelper.isRawDocId(docId)) { + if (RawDocumentsHelper.isRawDocId(docId) || isMediaStoreDownload(docId)) { super.deleteDocument(docId); return; } - int count; - if (isMediaStoreDownload(docId)) { - count = getContext().getContentResolver().delete( - getMediaStoreUri(docId), null, null); - } else { - count = mDm.remove(Long.parseLong(docId)); - } - - if (count != 1) { + if (mDm.remove(Long.parseLong(docId)) != 1) { throw new IllegalStateException("Failed to delete " + docId); } } finally { |