summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadInfo.java
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2011-03-10 11:57:56 -0800
committerVasu Nori <vnori@google.com>2011-03-10 15:20:25 -0800
commit6baceb7073ed7858d3424ccf774e5f6a946bec59 (patch)
treec2b3466f2dee3b0ec9a01dbe649206f0ec48932b /src/com/android/providers/downloads/DownloadInfo.java
parent34cebab410fe28edb9eb1bba6df96ceaa0224739 (diff)
downloadandroid_packages_providers_DownloadProvider-6baceb7073ed7858d3424ccf774e5f6a946bec59.tar.gz
android_packages_providers_DownloadProvider-6baceb7073ed7858d3424ccf774e5f6a946bec59.tar.bz2
android_packages_providers_DownloadProvider-6baceb7073ed7858d3424ccf774e5f6a946bec59.zip
(master) bug:3204324 allow no more than certain number of concurrent downloads
Change-Id: Ibbce0782fcf7649209d6f56be240209cebd9045b
Diffstat (limited to 'src/com/android/providers/downloads/DownloadInfo.java')
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index 2973937e..bd8df864 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -216,8 +216,6 @@ public class DownloadInfo {
public int mFuzz;
- public volatile boolean mHasActiveThread;
-
private List<Pair<String, String>> mRequestHeaders = new ArrayList<Pair<String, String>>();
private SystemFacade mSystemFacade;
private Context mContext;
@@ -279,7 +277,7 @@ public class DownloadInfo {
* should be started.
*/
private boolean isReadyToStart(long now) {
- if (mHasActiveThread) {
+ if (DownloadHandler.getInstance().hasDownloadInQueue(mId)) {
// already running
return false;
}
@@ -442,19 +440,13 @@ public class DownloadInfo {
if (Constants.LOGV) {
Log.v(Constants.TAG, "Service spawning thread to handle download " + mId);
}
- if (mHasActiveThread) {
- throw new IllegalStateException("Multiple threads on same download");
- }
if (mStatus != Impl.STATUS_RUNNING) {
mStatus = Impl.STATUS_RUNNING;
ContentValues values = new ContentValues();
values.put(Impl.COLUMN_STATUS, mStatus);
mContext.getContentResolver().update(getAllDownloadsUri(), values, null, null);
}
- DownloadThread downloader = new DownloadThread(mContext, mSystemFacade, this,
- storageManager);
- mHasActiveThread = true;
- mSystemFacade.startThread(downloader);
+ DownloadHandler.getInstance().enqueueDownload(this);
}
public boolean isOnCache() {
@@ -543,4 +535,10 @@ public class DownloadInfo {
intent.putExtra(EXTRA_IS_WIFI_REQUIRED, isWifiRequired);
mContext.startActivity(intent);
}
+
+ void startDownloadThread() {
+ DownloadThread downloader = new DownloadThread(mContext, mSystemFacade, this,
+ StorageManager.getInstance(mContext));
+ mSystemFacade.startThread(downloader);
+ }
}