summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadThread.java
diff options
context:
space:
mode:
authorRobin Lee <rgl@google.com>2016-04-07 16:43:13 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-07 16:43:15 +0000
commitf4837c7cf730eb08fdd3596169fa383e0b8c6293 (patch)
tree3f79dd14d5be423a795f9b23f85e7339d6a75e92 /src/com/android/providers/downloads/DownloadThread.java
parent5b7e8d4ada2b10f4e0d0cec6a6b3dd5ad4553161 (diff)
parent26c68db9ccf1983f5d6e8a734f8ffccea3849f10 (diff)
downloadandroid_packages_providers_DownloadProvider-f4837c7cf730eb08fdd3596169fa383e0b8c6293.tar.gz
android_packages_providers_DownloadProvider-f4837c7cf730eb08fdd3596169fa383e0b8c6293.tar.bz2
android_packages_providers_DownloadProvider-f4837c7cf730eb08fdd3596169fa383e0b8c6293.zip
Merge "Implement multi-network downloads" into nyc-dev
Diffstat (limited to 'src/com/android/providers/downloads/DownloadThread.java')
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index 65142db6..8d51909e 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -45,6 +45,7 @@ import android.drm.DrmManagerClient;
import android.drm.DrmOutputStream;
import android.net.ConnectivityManager;
import android.net.INetworkPolicyListener;
+import android.net.Network;
import android.net.NetworkInfo;
import android.net.NetworkPolicyManager;
import android.net.TrafficStats;
@@ -351,6 +352,13 @@ public class DownloadThread implements Runnable {
throw new StopRequestException(STATUS_BAD_REQUEST, e);
}
+ final Network network = mSystemFacade.getActiveNetwork(mInfo.mUid);
+ if (network == null) {
+ throw new StopRequestException(Downloads.Impl.STATUS_WAITING_FOR_NETWORK,
+ "no network associated with requesting UID");
+ }
+ logDebug("Using network: " + network);
+
boolean cleartextTrafficPermitted = mSystemFacade.isCleartextTrafficPermitted(mInfo.mUid);
int redirectionCount = 0;
while (redirectionCount++ < Constants.MAX_REDIRECTS) {
@@ -367,7 +375,7 @@ public class DownloadThread implements Runnable {
HttpURLConnection conn = null;
try {
checkConnectivity();
- conn = (HttpURLConnection) url.openConnection();
+ conn = (HttpURLConnection) network.openConnection(url);
conn.setInstanceFollowRedirects(false);
conn.setConnectTimeout(DEFAULT_TIMEOUT);
conn.setReadTimeout(DEFAULT_TIMEOUT);