summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2011-01-12 16:26:42 -0800
committerVasu Nori <vnori@google.com>2011-01-12 17:27:47 -0800
commit47cb8be0fea98c2f9d96b269278f2e011e810413 (patch)
tree0c68bf2d181350d1c471a6446011f6d17008bbaf /src
parenta7ead263890e2bab9794aadad610fc7fb00452bf (diff)
downloadandroid_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.tar.gz
android_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.tar.bz2
android_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.zip
bug:3332449 downloadmanager deleting downloaded files sometimes
removeSpuriousFiles() method in StorageManager.java is removing files because of it incorrectly thought a given file has NO entry in downloads db. more details: List<File> files; String filename; files.remove(filename) remove should be new File(filename) most probably this fix also addresses bug:3324673 Change-Id: I22c58398fe874fa81939b575c782b6700a2cac4e
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/StorageManager.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/com/android/providers/downloads/StorageManager.java b/src/com/android/providers/downloads/StorageManager.java
index e9638b8f..72658344 100644
--- a/src/com/android/providers/downloads/StorageManager.java
+++ b/src/com/android/providers/downloads/StorageManager.java
@@ -26,6 +26,7 @@ import android.net.Uri;
import android.os.Environment;
import android.os.StatFs;
import android.provider.Downloads;
+import android.text.TextUtils;
import android.util.Log;
import com.android.internal.R;
@@ -373,14 +374,20 @@ class StorageManager {
if (files.size() == 0) {
return;
}
-
Cursor cursor = mContext.getContentResolver().query(
Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI,
new String[] { Downloads.Impl._DATA }, null, null, null);
try {
if (cursor != null) {
while (cursor.moveToNext()) {
- files.remove(cursor.getString(0));
+ String filename = cursor.getString(0);
+ if (!TextUtils.isEmpty(filename)) {
+ if (Constants.LOGV) {
+ Log.i(Constants.TAG, "in removeSpuriousFiles, preserving file " +
+ filename);
+ }
+ files.remove(new File(filename));
+ }
}
}
} finally {