summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2019-06-12 18:49:30 -0700
committerSudheer Shanka <sudheersai@google.com>2019-06-13 10:41:15 -0700
commitbcafd4ab8ce6e2327275069d4dc3a83a3891c813 (patch)
tree872a186794289b788328c662d51e6fabc4489ba0
parentf66042e2d0e05fba2fd4baae0a46494e8dad5d07 (diff)
downloadandroid_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.java12
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 {