| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When deleting downloads, revoke any Uri permission grants, which
removes from getPersistedUriPermissions().
Bug: 10928851
Change-Id: I3e90c4071385832dcb3e0cf9ca3fdccafbe30037
|
|
|
|
|
| |
Bug: 10920351
Change-Id: I8c7e5344d9fd9d15565eaf93b91ce457a98ab98c
|
|
|
|
|
|
|
|
|
|
|
| |
Add column to mark downloads as being writable, and allow documents
to be created under Downloads backend. Update database when writing
is finished, and generate unique filenames when they already exist.
Check canonical path on incoming _DATA paths.
Bug: 10667164, 10892621, 10893268
Change-Id: I8c203b96ff042a895b58686903fcd07fc755a00f
|
|
|
|
|
|
|
| |
Handle both missing downloads and missing activities.
Bug: 10799449, 10713636
Change-Id: I592b07fc5cf530526803379d7f7a99e8a6b207c4
|
|
|
|
|
|
|
|
|
|
|
| |
When returning recent files, omit images that have been scanned and
provided by the Images backend.
Return in-progress files when queried for management UI, otherwise
only return complete files.
Bug: 10659651
Change-Id: I8f05e6fcf53422905d7f51cc55611ca00af301bf
|
|
|
|
|
| |
Bug: 10672973, 10577809
Change-Id: I92314c35b37ac590830e881489e6a88afd860de4
|
|
|
|
|
|
|
|
|
| |
Handle incoming manage requests by launching finished downloads,
or showing various retry dialogs. Pipe through summary, show
percentage when in progress, and always show total size and MIME type.
Bug: 10531347, 10599641
Change-Id: I3be2bc67ea3c0ef795146177200f5be77ad5114e
|
|
|
|
|
| |
Bug: 10531347
Change-Id: Ia704b233623e913da3a5cb7c8aa5e024900e1d3a
|
|
|
|
|
| |
Bug: 10597317
Change-Id: Ia32f4ec34847680135c300dfe8fe73694da4c57a
|
|
|
|
|
| |
Bug: 10593596
Change-Id: I708d2396266d083a494e57eab2637471e54e1cdc
|
|
|
|
|
| |
Bug: 10567557
Change-Id: If03f352f865073b0e332a6a1c40cc34d83425b62
|
|
|
|
|
|
|
|
| |
Provides same functionality, but follows updated DocumentsProvider
contract in framework.
Bug: 10497206
Change-Id: Ie1f6180047ff7bad289679a14f3368238d47b1d6
|
|
|
|
|
|
|
|
|
| |
PackageInstaller requires raw file:// Uris, and refuses to accept
content:// Uris, so create a trampoline that uses the raw file and
also splices in referrer extras.
Bug: 10391254
Change-Id: I12a06862069479de5dee140d0065479ce79eb494
|
|
|
|
|
| |
Bug: 10329983
Change-Id: Iff3db6e5210ae9f33ec13af91561475b269dcc40
|
|
|
|
|
|
|
|
|
| |
Uses new MatrixCursor.RowBuilder.offer() to support custom
projections. Also query MIME types directly so they're always
consistent.
Bug: 10329983
Change-Id: I724b26e008f6ffb85940e009a916b969ead42fcd
|
|
|
|
|
|
|
|
|
| |
When Downloads app is launched, delegate to new documents management
UI. Use DownloadManager public API to match the contents of the
existing Downloads UI.
Bug: 10329983
Change-Id: Iaa1a1dc013cfe3b17d31ecc764d4c4cc13f62258
|
|
|
|
|
|
|
| |
Offers a view of Downloads through the lens of DocumentsContract
for surfacing in new storage UI.
Change-Id: I4373c2498b4b82bfee2300a00f8d0bb734bf574c
|
|
|
|
|
|
|
| |
This matches how network usage is already counted against the app
making the request.
Change-Id: I6a862e096f2f99441925a101268235615000355a
|
|
|
|
|
| |
Bug: 8850035
Change-Id: If506ea21f0c823f9da4b7ae14d611fdbfbac8042
|
|
|
|
|
| |
Bug: 8744610
Change-Id: I135a3acbc819fd725f00ba57461e21db1fe24850
|
|\
| |
| |
| | |
jb-mr2-dev
|
| |
| |
| |
| | |
Change-Id: I4839fd07abdd1c6b866f1d94dc36567df047e30c
|
|/
|
|
|
|
|
|
|
| |
PendingIntent.getBroadcast() doesn't update the intent extras if not
explicitly given something to distinguish the intents. This caused the
notification on-click to do nothing on everything but the first
download.
Change-Id: I29544ae5b04f8304cbbe720066a26ff90e422107
|
|
|
|
|
|
|
| |
Otherwise notifications end up launching with stale download IDs.
Bug: 8417220
Change-Id: Ie72a2f4ac7b72213678ac6001af45709034492dd
|
|
|
|
|
|
|
| |
Also reduce and adjust some logging.
Bug: 8470658
Change-Id: Ia1f1cbd315ded04edd2113506e5c5a1db5ec85b4
|
|
|
|
|
|
| |
This reverts commit 97d507d95f9885ceb12f2ce2483361b5ed265f9f
Change-Id: I20374301561b3a1c79c2d986292af50049de2aac
|
|
|
|
|
| |
Bug: 8470658
Change-Id: I4cfd6a01c2c2d845a72d3f58c29eec8b44176537
|
|
|
|
|
|
|
|
|
| |
Most wtf() are looking like network timeouts, not threading bugs, so
disable verbose debugging and add more targeted thread logging before
calling wtf().
Bug: 8233041
Change-Id: I8e276bffd7880cfe13b65e7e81f5507cab627692
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 8233041
Change-Id: Ifb70273474c391ef687ba018d9ef809a359c7149
|
|/
|
|
|
|
|
|
| |
Transparent gzip encoding doesn't allow us to easily resume partial
requests, so defeat it for now.
Bug: 8409417
Change-Id: I1172709c09d1153fff1ba8df072a9bef896e244d
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When multiple downloads are running in parallel, they can end up
claiming the same filename and clobber over each other. This change
introduces locking around filename generation, and touches the
claimed filename so other threads fail the File.exists() check and
keep looking.
Tests to verify.
Bug: 8255596
Change-Id: Ie75ed047c199cf679832c75159056ca036eac18d
|
|
|
|
|
|
|
|
|
| |
Otherwise we end up triggering MSG_FINAL_UPDATE while still waiting
for socket timeouts. Using 20 seconds for timeout is more sane, and
matches Volley.
Bug: 8233041
Change-Id: Ia7220033a5942c46ca1d79a88e2b3f530cb3edac
|
|
|
|
|
|
|
|
|
| |
Otherwise they end up leaking. There is a race around UpdateThread
continuing to process messages before onDestroy() has been invoked,
so explicitly UpdateThread.quit() in both places.
Bug: 8233041
Change-Id: I73f1b70aedace19e23a61a3dddf4986d82f2c7d6
|
|
|
|
|
|
|
|
| |
Since DownloadService starts and stops frequently, recycle a single
UpdateThread across invocations.
Bug: 8233041
Change-Id: I07756fb6bfdbad811cbd58e628fdfdbf63d71bf8
|
|
|
|
|
|
|
|
|
|
|
| |
Wait until we've passed a full sample window (500ms) before reporting
an estimated speed. This avoid showing skewed times like "900 hours
remaining."
Also remember to clean up the UpdateThread.
Bug: 8176417
Change-Id: I851e0abcbb443114abe9c22f4650fee7a9bc3aaa
|
|
|
|
|
|
|
| |
When a download fails due to a network change, treat it as waiting
for network, instead of subjecting it to full retry backoff.
Change-Id: Ifdae62fd7c2baad7422f68e09da94740b5f513d0
|
|
|
|
|
|
|
|
| |
This was moved to to solve a race condition around service shutdown,
but ended up causing another race with remote apps.
Bug: 8200919
Change-Id: Ief470e9454e9be8ec43ca3ec11e3b3440fa5852d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the service lifecycle was managed through a large for()
loop which was extremely tricky to reason about. This resulted in
several race conditions that could leave the service running
indefinitely, or terminate it early before tasks had finished.
This change redesigns the update loop to be event driven based on
database updates, and to collapse mutiple pending update passes. It
is much easier to reason about service termination conditions, and
it correctly uses startId to handle races during command delivery.
Also moves scanner into isolated class, and switches to using public
API instead of binding to private interface.
Bug: 7638470, 7455406, 7162341
Change-Id: I380e77f5432223b2acb4e819e37f29f98ee4782b
|
|
|
|
|
| |
Bug: 8145142
Change-Id: I9119796f809aa967f7ec6bb2a3d2b815e86eaf1b
|
|
|
|
|
|
|
|
|
| |
The lifetime of DownloadService can be limited, and it's often
missing from bugreports. The provider has a much longer lifetime,
so have it dump raw data about recent downloads.
Bug: 7350685
Change-Id: I55c9d602d77014ea27820936f1cf5c8ad24f286a
|
|
|
|
|
|
|
|
|
|
| |
Verify that servers responding with many retries or redirects result
in failed download, instead of spinning out of control. Test to
verify that changed ETag results in download failing.
Also fix handling of HTTP 301 to update Uri in database.
Change-Id: Iff2948d79961a245b7900117d107edaa356618c9
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch to using a ThreadPoolExecutor for handling downloads, which
gives us parallelism logic that is easier to reason about. Also
open the door to eventually waiting until the executor is drained
to stopSelf().
Removes DownloadHandler singleton, and gives explicit path for
publishing active download speeds to notifications.
Change-Id: I1836e7742bb8a84861d1ca6bd1e59b2040bd12f8
|
|
|
|
|
|
|
|
| |
Now the final errors are always thrown, and the outer code decides
how to handle them as retries. Also clean up method signatures.
Bug: 8022478
Change-Id: I4e7e43be793294ab837370df521e7c381e0bb6c3
|
|
|
|
| |
Change-Id: Ib8ea24fc58a866f8a5626cdd20e5891eb0a2bbeb
|
|
|
|
|
|
|
| |
Also include more details when reporting HTTP error codes.
Bug: 7966393
Change-Id: I251b1ec7c827693817391b6e9fb8b0cab995395e
|
|
|
|
|
|
|
|
|
|
| |
Move redirection handling into a single loop, and handle each HTTP
response code inline to make flow control easier to reason about.
Fix race condition in tests by waiting for first status update.
Bug: 7887226
Change-Id: Id4bfd182941baad4cd0bb702376c4beeb7275bb2
|
|
|
|
|
|
|
|
|
|
|
| |
Change runUntilStatus() methods to polling with timeout instead of
requiring internal knowledge about threading.
Fix notification tests, and move opening of InputStream until after
handling headers to avoid FNFE. Always reset facade to defaults
before each test.
Change-Id: I6b2d6cfc4e685d2090c1133b1b2e89ae12760f8b
|
|
|
|
|
|
|
| |
Now DownloadService creates and owns the lifecycle of its own
StorageManager instance.
Change-Id: I8f6bedc02f1dbe610a8e6a25d55383a12716d344
|
|
|
|
|
|
|
| |
It was cluttering up method signatures, and can easily be reset
before starting each download pass.
Change-Id: I7dee9d2160c3b5f737e7db86baa826d5d0b04b2d
|