Support for custom HTTP headers on download requests
authorSteve Howard <showard@google.com>
Wed, 14 Jul 2010 18:30:59 +0000 (11:30 -0700)
committerSteve Howard <showard@google.com>
Thu, 15 Jul 2010 17:47:37 +0000 (10:47 -0700)
commit5224c6fbf20b4803a580ef449ab87ebfbbfedb78
tree11ece8c8594bb526e0e36edb6514fb025c973c87
parent6d9b98282c817b86a00f9c19a705da4cb19bc3a6
Support for custom HTTP headers on download requests

Provider changes:
* new many-to-one DB table holding headers for each download.  since
  there was no real migration logic in DownloadProvider, I implemented
  some.
* DownloadProvider.insert() reads request headers out of the
  ContentValues and puts them into the new table
* DownloadProvider.query() supports a new URI form,
  download/#/headers, to fetch the headers associated with a download
* DownloadProvider.delete() removes request headers from this table

Service changes:
* made DownloadInfo store request headers upon initialization.  While
  I was at it, I refactored the initialization logic into DownloadInfo
  to get rid of the massive 24-parameter constructor.  The right next
  step would be to move the update logic into DownloadInfo and merge
  it with the initialization logic; however, I realized that headers
  don't need to be updatable, and in the future, we won't need the
  update logic at all, so i didn't bother touching the update code.
* made DownloadThread read headers from the DownloadInfo and include
  them in the request; merged the custom Cookie and Referer logic into
  this logic

Also added a couple new test cases for this stuff.

Change-Id: I421ce1f0a694e815f2e099795182393650fcb3ff
src/com/android/providers/downloads/DownloadInfo.java
src/com/android/providers/downloads/DownloadProvider.java
src/com/android/providers/downloads/DownloadService.java
src/com/android/providers/downloads/DownloadThread.java
tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java