summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/Helpers.java
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2010-10-14 22:57:46 -0700
committerVasu Nori <vnori@google.com>2010-10-15 00:10:10 -0700
commitbe2eaa55bb3dca3422da25fe907b50a4ad70df17 (patch)
tree2d1877712c455c71efb6ed11c8e9f0b9f86d4ffa /src/com/android/providers/downloads/Helpers.java
parenta53c21edb5dc57d97dcddd03fbfa2022abf43787 (diff)
downloadandroid_packages_providers_DownloadProvider-be2eaa55bb3dca3422da25fe907b50a4ad70df17.tar.gz
android_packages_providers_DownloadProvider-be2eaa55bb3dca3422da25fe907b50a4ad70df17.tar.bz2
android_packages_providers_DownloadProvider-be2eaa55bb3dca3422da25fe907b50a4ad70df17.zip
bug:3099994 NPE in DownloadManager when deleting non-media file
DownloadService always scans files and assumes MediaProvider returns a valid Uri. But MediaProvider returns null for return param 'uri' if the file is not audio/video/image etc media type file (for example, pdf) Change-Id: If32bd1895b00b5406973a5e240ad3558d46f9f4a
Diffstat (limited to 'src/com/android/providers/downloads/Helpers.java')
-rw-r--r--src/com/android/providers/downloads/Helpers.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index cbcae5f4..855cba28 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -16,6 +16,7 @@
package com.android.providers.downloads;
+import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
@@ -799,4 +800,19 @@ public class Helpers {
(c >= '0' && c <= '9');
}
}
+
+ /**
+ * Delete the given file from device
+ * and delete its row from the downloads database.
+ */
+ /* package */ static void deleteFile(ContentResolver resolver, long id, String path, String mimeType) {
+ try {
+ File file = new File(path);
+ file.delete();
+ } catch (Exception e) {
+ Log.w(Constants.TAG, "file: '" + path + "' couldn't be deleted", e);
+ }
+ resolver.delete(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, Downloads.Impl._ID + " = ? ",
+ new String[]{String.valueOf(id)});
+ }
}