summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadHandler.java24
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java5
-rw-r--r--src/com/android/providers/downloads/DownloadService.java2
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java3
-rw-r--r--src/com/android/providers/downloads/RealSystemFacade.java9
-rw-r--r--src/com/android/providers/downloads/SystemFacade.java5
6 files changed, 8 insertions, 40 deletions
diff --git a/src/com/android/providers/downloads/DownloadHandler.java b/src/com/android/providers/downloads/DownloadHandler.java
index 2f02864e..c376ff1e 100644
--- a/src/com/android/providers/downloads/DownloadHandler.java
+++ b/src/com/android/providers/downloads/DownloadHandler.java
@@ -96,28 +96,4 @@ public class DownloadHandler {
public synchronized long getCurrentSpeed(long id) {
return mCurrentSpeed.get(id, -1L);
}
-
- // right now this is only used by tests. but there is no reason why it can't be used
- // by any module using DownloadManager (TODO add API to DownloadManager.java)
- public synchronized void waitUntilDownloadsTerminate() throws InterruptedException {
- if (mDownloadsInProgress.size() == 0 && mDownloadsQueue.size() == 0) {
- if (Constants.LOGVV) {
- Log.i(TAG, "nothing to wait on");
- }
- return;
- }
- if (Constants.LOGVV) {
- for (DownloadInfo info : mDownloadsInProgress.values()) {
- Log.i(TAG, "** progress: " + info.mId + ", " + info.mUri);
- }
- for (DownloadInfo info : mDownloadsQueue.values()) {
- Log.i(TAG, "** in Q: " + info.mId + ", " + info.mUri);
- }
- }
- if (Constants.LOGVV) {
- Log.i(TAG, "waiting for 5 sec");
- }
- // wait upto 5 sec
- wait(5 * 1000);
- }
}
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index 2ea7d84d..e64db289 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -575,9 +575,8 @@ public class DownloadInfo {
}
void startDownloadThread() {
- DownloadThread downloader = new DownloadThread(mContext, mSystemFacade, this,
- mStorageManager);
- mSystemFacade.startThread(downloader);
+ // TODO: keep this thread strongly referenced
+ new DownloadThread(mContext, mSystemFacade, this, mStorageManager).start();
}
/**
diff --git a/src/com/android/providers/downloads/DownloadService.java b/src/com/android/providers/downloads/DownloadService.java
index e0fe4c55..4a1b40d5 100644
--- a/src/com/android/providers/downloads/DownloadService.java
+++ b/src/com/android/providers/downloads/DownloadService.java
@@ -259,7 +259,7 @@ public class DownloadService extends Service {
mPendingUpdate = true;
if (mUpdateThread == null) {
mUpdateThread = new UpdateThread();
- mSystemFacade.startThread(mUpdateThread);
+ mUpdateThread.start();
}
}
}
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index eb59d3f7..ae279260 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -261,10 +261,9 @@ public class DownloadThread extends Thread {
try {
// Asking for response code will execute the request
final int statusCode = conn.getResponseCode();
- in = conn.getInputStream();
-
handleExceptionalStatus(state, conn, statusCode);
processResponseHeaders(state, conn);
+ in = conn.getInputStream();
} catch (IOException e) {
throw new StopRequestException(
getFinalStatusForHttpError(state), "Request failed: " + e, e);
diff --git a/src/com/android/providers/downloads/RealSystemFacade.java b/src/com/android/providers/downloads/RealSystemFacade.java
index 228c7165..fa4f3488 100644
--- a/src/com/android/providers/downloads/RealSystemFacade.java
+++ b/src/com/android/providers/downloads/RealSystemFacade.java
@@ -32,10 +32,12 @@ class RealSystemFacade implements SystemFacade {
mContext = context;
}
+ @Override
public long currentTimeMillis() {
return System.currentTimeMillis();
}
+ @Override
public NetworkInfo getActiveNetworkInfo(int uid) {
ConnectivityManager connectivity =
(ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
@@ -57,6 +59,7 @@ class RealSystemFacade implements SystemFacade {
return conn.isActiveNetworkMetered();
}
+ @Override
public boolean isNetworkRoaming() {
ConnectivityManager connectivity =
(ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
@@ -74,6 +77,7 @@ class RealSystemFacade implements SystemFacade {
return isRoaming;
}
+ @Override
public Long getMaxBytesOverMobile() {
return DownloadManager.getMaxBytesOverMobile(mContext);
}
@@ -92,9 +96,4 @@ class RealSystemFacade implements SystemFacade {
public boolean userOwnsPackage(int uid, String packageName) throws NameNotFoundException {
return mContext.getPackageManager().getApplicationInfo(packageName, 0).uid == uid;
}
-
- @Override
- public void startThread(Thread thread) {
- thread.start();
- }
}
diff --git a/src/com/android/providers/downloads/SystemFacade.java b/src/com/android/providers/downloads/SystemFacade.java
index fda97e08..15fc31f9 100644
--- a/src/com/android/providers/downloads/SystemFacade.java
+++ b/src/com/android/providers/downloads/SystemFacade.java
@@ -61,9 +61,4 @@ interface SystemFacade {
* Returns true if the specified UID owns the specified package name.
*/
public boolean userOwnsPackage(int uid, String pckg) throws NameNotFoundException;
-
- /**
- * Start a thread.
- */
- public void startThread(Thread thread);
}