summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadThread.java
diff options
context:
space:
mode:
authorSteve Howard <showard@google.com>2010-09-20 15:43:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-20 15:43:49 -0700
commit2031fa7bad5ef3e31cf0ea73d0b9bf4670842cf0 (patch)
tree89cfcc04ba69c0623cd4fcfcd39c0fec2c3e92fb /src/com/android/providers/downloads/DownloadThread.java
parentb8cadd87bfc628090c36f74979c7691bb1219ea1 (diff)
parentdc738781156d0f5ac1db62838d42c876d740810d (diff)
downloadandroid_packages_providers_DownloadProvider-2031fa7bad5ef3e31cf0ea73d0b9bf4670842cf0.tar.gz
android_packages_providers_DownloadProvider-2031fa7bad5ef3e31cf0ea73d0b9bf4670842cf0.tar.bz2
android_packages_providers_DownloadProvider-2031fa7bad5ef3e31cf0ea73d0b9bf4670842cf0.zip
am dc738781: Merge "Improve file error reporting + new detailed error messages in UI" into gingerbread
Merge commit 'dc738781156d0f5ac1db62838d42c876d740810d' into gingerbread-plus-aosp * commit 'dc738781156d0f5ac1db62838d42c876d740810d': Improve file error reporting + new detailed error messages in UI
Diffstat (limited to 'src/com/android/providers/downloads/DownloadThread.java')
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index d680e083..a7eb185c 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -434,9 +434,18 @@ public class DownloadThread extends Thread {
}
return;
} catch (IOException ex) {
- if (mInfo.isOnCache()
- && Helpers.discardPurgeableFiles(mContext, Constants.BUFFER_SIZE)) {
- continue;
+ if (mInfo.isOnCache()) {
+ if (Helpers.discardPurgeableFiles(mContext, Constants.BUFFER_SIZE)) {
+ continue;
+ }
+ } else if (!Helpers.isExternalMediaMounted()) {
+ throw new StopRequest(Downloads.Impl.STATUS_DEVICE_NOT_FOUND_ERROR);
+ }
+
+ long availableBytes =
+ Helpers.getAvailableBytes(Helpers.getFilesystemRoot(state.mFilename));
+ if (availableBytes < bytesRead) {
+ throw new StopRequest(Downloads.Impl.STATUS_INSUFFICIENT_SPACE_ERROR, ex);
}
throw new StopRequest(Downloads.Impl.STATUS_FILE_ERROR, ex);
}