diff options
author | Steve Howard <showard@google.com> | 2010-07-15 12:24:14 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-07-15 12:24:14 -0700 |
commit | d6343c26b8580f61a257a3045bfa124049201116 (patch) | |
tree | 9073321ed55d9afb454e490f43fd88c7492f9956 /core/java | |
parent | 5352d2378d2f92ebe0657e4caedb4498492fc404 (diff) | |
parent | ea9147df00ee6e098cd02d901424ae5a4fe0fafd (diff) | |
download | frameworks_base-d6343c26b8580f61a257a3045bfa124049201116.zip frameworks_base-d6343c26b8580f61a257a3045bfa124049201116.tar.gz frameworks_base-d6343c26b8580f61a257a3045bfa124049201116.tar.bz2 |
Merge "Interface support for custom HTTP headers in DL manager" into gingerbread
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/net/DownloadManager.java | 12 | ||||
-rw-r--r-- | core/java/android/provider/Downloads.java | 21 |
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_"; + } } } |