summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorSteve Howard <showard@google.com>2010-07-15 12:28:39 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-07-15 12:28:39 -0700
commit203ec9fa6eab21621969f36053d4cd59c23977a9 (patch)
treef47bcf3dce8c83539785a25b14006049f081fc5a /core/java
parent4fd416880e53c172bac4a51b2eafea699b58badf (diff)
parentd6343c26b8580f61a257a3045bfa124049201116 (diff)
downloadframeworks_base-203ec9fa6eab21621969f36053d4cd59c23977a9.zip
frameworks_base-203ec9fa6eab21621969f36053d4cd59c23977a9.tar.gz
frameworks_base-203ec9fa6eab21621969f36053d4cd59c23977a9.tar.bz2
am d6343c26: Merge "Interface support for custom HTTP headers in DL manager" into gingerbread
Merge commit 'd6343c26b8580f61a257a3045bfa124049201116' into gingerbread-plus-aosp * commit 'd6343c26b8580f61a257a3045bfa124049201116': Interface support for custom HTTP headers in DL manager
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/net/DownloadManager.java12
-rw-r--r--core/java/android/provider/Downloads.java21
2 files changed, 31 insertions, 2 deletions
diff --git a/core/java/android/net/DownloadManager.java b/core/java/android/net/DownloadManager.java
index 02b6210..00b6864 100644
--- a/core/java/android/net/DownloadManager.java
+++ b/core/java/android/net/DownloadManager.java
@@ -350,8 +350,7 @@ public class DownloadManager {
}
if (!mRequestHeaders.isEmpty()) {
- // TODO request headers support
- throw new UnsupportedOperationException();
+ encodeHttpHeaders(values);
}
putIfNonNull(values, Downloads.COLUMN_TITLE, mTitle);
@@ -367,6 +366,15 @@ public class DownloadManager {
return values;
}
+ private void encodeHttpHeaders(ContentValues values) {
+ int index = 0;
+ for (Map.Entry<String, String> entry : mRequestHeaders.entrySet()) {
+ String headerString = entry.getKey() + ": " + entry.getValue();
+ values.put(Downloads.Impl.RequestHeaders.INSERT_KEY_PREFIX + index, headerString);
+ index++;
+ }
+ }
+
private void putIfNonNull(ContentValues contentValues, String key, String value) {
if (value != null) {
contentValues.put(key, value);
diff --git a/core/java/android/provider/Downloads.java b/core/java/android/provider/Downloads.java
index 1a4f8c0..2a612fe 100644
--- a/core/java/android/provider/Downloads.java
+++ b/core/java/android/provider/Downloads.java
@@ -1115,5 +1115,26 @@ public final class Downloads {
* This download doesn't show in the UI or in the notifications.
*/
public static final int VISIBILITY_HIDDEN = 2;
+
+ /**
+ * Constants related to HTTP request headers associated with each download.
+ */
+ public static class RequestHeaders {
+ public static final String HEADERS_DB_TABLE = "request_headers";
+ public static final String COLUMN_DOWNLOAD_ID = "download_id";
+ public static final String COLUMN_HEADER = "header";
+ public static final String COLUMN_VALUE = "value";
+
+ /**
+ * Path segment to add to a download URI to retrieve request headers
+ */
+ public static final String URI_SEGMENT = "headers";
+
+ /**
+ * Prefix for ContentValues keys that contain HTTP header lines, to be passed to
+ * DownloadProvider.insert().
+ */
+ public static final String INSERT_KEY_PREFIX = "http_header_";
+ }
}
}