Merge "Interface support for custom HTTP headers in DL manager" into gingerbread
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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_";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user