Improved support for 302/307 redirects.
authorSteve Howard <showard@google.com>
Tue, 27 Jul 2010 21:34:12 +0000 (14:34 -0700)
committerSteve Howard <showard@google.com>
Wed, 28 Jul 2010 00:15:58 +0000 (17:15 -0700)
commitf85aa9ef563f2fbb3c0db6c980121122a14d953f
tree4578f5c50db1796ed0679699d9c8cb0e755438c3
parentf6b4c24b4a876daa3f4e91d6da418983222b9dfd
Improved support for 302/307 redirects.

Change the download manager's handling of 302/307 temporary redirects
so that after an interruption of any kind, the delayed retry/resume
will return to the original URI.  This complies better with the HTTP
spec.  This change also makes the download manager handle other
redirects immediately rather than using the delay that's otherwise
applied to download errors.

I made one more method extraction in DownloadThread to simplify this
change, pulling the top-level logic for a single request into
executeDownload().  It was then just a matter of introducing a new
RetryDownload exeception, similar to StopRequest, and making the
redirection code use it.

Change-Id: Ic719c5725a9fd2e5eebe4dc03453ee71d9f27cd4
src/com/android/providers/downloads/DownloadThread.java
tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java