summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadInfo.java
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2011-02-08 17:16:41 -0800
committerVasu Nori <vnori@google.com>2011-02-08 18:10:11 -0800
commit789745f667c65661d82ccbd5ef49fdb132911736 (patch)
treec264e45bc316434d3af7f9915828fb45f0441e5b /src/com/android/providers/downloads/DownloadInfo.java
parent7806290088fbd6f802288021ec551ddd9469892a (diff)
downloadandroid_packages_providers_DownloadProvider-789745f667c65661d82ccbd5ef49fdb132911736.tar.gz
android_packages_providers_DownloadProvider-789745f667c65661d82ccbd5ef49fdb132911736.tar.bz2
android_packages_providers_DownloadProvider-789745f667c65661d82ccbd5ef49fdb132911736.zip
bug:3435895 listen to media_mounted broadcast intent
and retry downloads that failed due to the error "sdcard media not mounted" Change-Id: Id181b8167d331214f72679c85f18cc8b9b969e40
Diffstat (limited to 'src/com/android/providers/downloads/DownloadInfo.java')
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index 3587dbfb..2973937e 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -26,6 +26,7 @@ import android.database.Cursor;
import android.drm.mobile1.DrmRawContent;
import android.net.ConnectivityManager;
import android.net.Uri;
+import android.os.Environment;
import android.provider.Downloads;
import android.provider.Downloads.Impl;
import android.text.TextUtils;
@@ -300,6 +301,15 @@ public class DownloadInfo {
case Downloads.Impl.STATUS_WAITING_TO_RETRY:
// download was waiting for a delayed restart
return restartTime(now) <= now;
+ case Downloads.Impl.STATUS_DEVICE_NOT_FOUND_ERROR:
+ // is the media mounted?
+ return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
+ case Downloads.Impl.STATUS_INSUFFICIENT_SPACE_ERROR:
+ // should check space to make sure it is worth retrying the download.
+ // but thats the first thing done by the thread when it retries to download
+ // it will fail pretty quickly if there is no space.
+ // so, it is not that bad to skip checking space availability here.
+ return true;
}
return false;
}