diff options
Diffstat (limited to 'src/com/android/providers')
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); } |