summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadInfo.java
diff options
context:
space:
mode:
authorSteve Howard <showard@google.com>2010-09-22 15:57:30 -0700
committerSteve Howard <showard@google.com>2010-09-22 18:31:44 -0700
commitebb555c0687061993dd6a22d15f6aab2437ee8c5 (patch)
tree6968836e8e8a549c51af802aeb31b551372a38f2 /src/com/android/providers/downloads/DownloadInfo.java
parentece96c7475696d8b447bb8523f4ad83c897002ea (diff)
downloadandroid_packages_providers_DownloadProvider-ebb555c0687061993dd6a22d15f6aab2437ee8c5.tar.gz
android_packages_providers_DownloadProvider-ebb555c0687061993dd6a22d15f6aab2437ee8c5.tar.bz2
android_packages_providers_DownloadProvider-ebb555c0687061993dd6a22d15f6aab2437ee8c5.zip
Support multi-valued HTTP headers, handle new API changes
* backend support for multiple values for the same HTTP headers, for corresponding API changes * other minor changes in response to DownloadManager API changes Change-Id: I7c595e94a60ed7afaca6cc3fb4c05aaeeff20c2a
Diffstat (limited to 'src/com/android/providers/downloads/DownloadInfo.java')
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index 467af836..2196cfc6 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -30,10 +30,12 @@ import android.net.Uri;
import android.provider.Downloads;
import android.provider.Downloads.Impl;
import android.util.Log;
+import android.util.Pair;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.List;
/**
* Stores information about an individual download.
@@ -106,21 +108,24 @@ public class DownloadInfo {
int valueIndex =
cursor.getColumnIndexOrThrow(Downloads.Impl.RequestHeaders.COLUMN_VALUE);
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
- info.mRequestHeaders.put(
- cursor.getString(headerIndex), cursor.getString(valueIndex));
+ addHeader(info, cursor.getString(headerIndex), cursor.getString(valueIndex));
}
} finally {
cursor.close();
}
if (info.mCookies != null) {
- info.mRequestHeaders.put("Cookie", info.mCookies);
+ addHeader(info, "Cookie", info.mCookies);
}
if (info.mReferer != null) {
- info.mRequestHeaders.put("Referer", info.mReferer);
+ addHeader(info, "Referer", info.mReferer);
}
}
+ private void addHeader(DownloadInfo info, String header, String value) {
+ info.mRequestHeaders.add(Pair.create(header, value));
+ }
+
/**
* Returns a String that holds the current value of the column, optimizing for the case
* where the value hasn't changed.
@@ -228,7 +233,7 @@ public class DownloadInfo {
public volatile boolean mHasActiveThread;
- private Map<String, String> mRequestHeaders = new HashMap<String, String>();
+ private List<Pair<String, String>> mRequestHeaders = new ArrayList<Pair<String, String>>();
private SystemFacade mSystemFacade;
private Context mContext;
@@ -238,8 +243,8 @@ public class DownloadInfo {
mFuzz = Helpers.sRandom.nextInt(1001);
}
- public Map<String, String> getHeaders() {
- return Collections.unmodifiableMap(mRequestHeaders);
+ public Collection<Pair<String, String>> getHeaders() {
+ return Collections.unmodifiableList(mRequestHeaders);
}
public void sendIntentIfRequested() {
@@ -415,9 +420,6 @@ public class DownloadInfo {
case ConnectivityManager.TYPE_WIFI:
return DownloadManager.Request.NETWORK_WIFI;
- case ConnectivityManager.TYPE_WIMAX:
- return DownloadManager.Request.NETWORK_WIMAX;
-
default:
return 0;
}