summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | Move internal DownloadProvider code off libcore.os.Elliott Hughes2014-04-282-18/+18
| | | | | | | | | | | | (As much as possible. There are no plans to make the mocking API public.) Change-Id: I348877b850d6d34572d5a19e67952254bc4f12ef
* | resolved conflicts for merge of 2ca55fd3 to masterNick Kralevich2014-03-141-6/+0
|\| | | | | | | Change-Id: I59df74b902c95299ae9adda2ddddb6bad4260159
| * Drop restorecon call from DownloadProvider.Stephen Smalley2014-03-121-6/+0
| | | | | | | | | | | | | | | | It is not necessary/useful to place this directory into a separate type from other app data files, so remove this restorecon. Change-Id: Iabd643a515c134ab2a62e82866a3f72530f795ba Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
* | Add idle service to clean orphan downloads.Jeff Sharkey2014-02-065-87/+179
| | | | | | | | | | | | | | | | | | | | | | | | Periodically reconcile database against disk contents. This handles the case where a user/app deletes files directly from disk without updating the database, and the rare case where a database delete didn't make it to deleting the underlying file. Also cleans up any downloads belonging to a UID when removed. Bug: 12924143 Change-Id: I4899d09df7ef71f2625491ac01ceeafa8a2013ce
* | Many improvements to download storage management.Jeff Sharkey2014-02-069-1110/+968
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change all data transfer to occur through FileDescriptors instead of relying on local files. This paves the way for downloading directly to content:// Uris in the future. Rewrite storage management logic to preflight download when size is known. If enough space is found, immediately reserve the space with fallocate(), advising the kernel block allocator to try giving us a contiguous block regions to reduce fragmentation. When preflighting on internal storage or emulated external storage, ask PackageManager to clear private app caches to free up space. Since we fallocate() the entire file, use the database as the source of truth for resume locations, which requires that we fsync() before each database update. Store in-progress downloads in separate directories to keep the OS from deleting out from under us. Clean up filename generation logic to break ties in this new dual-directory case. Clearer enforcement of successful download preconditions around content lengths and ETags. Move all database field mutations to clearer DownloadInfoDelta object, and write back through single code path. Catch and log uncaught exceptions from DownloadThread. Tests to verify new storage behaviors. Fixed existing test to reflect correct RFC behavior. Bug: 5287571, 3213677, 12663412 Change-Id: I6bb905eca7c7d1a6bc88df3db28b65d70f660221
* | Revert "change download provider to use system log"Doug Zongker2014-01-277-88/+88
| | | | | | | | | | This reverts commit 4f9d2d04003fafb358d7c127054055b3a9732c9b, was only wanted for debugging.
* | change download provider to use system logDoug Zongker2014-01-277-88/+88
|/ | | | | | | | Try to catch the download provider in the act of deleting pending system updates. Bug: 12680933 Change-Id: If58aba5c30fd624217e5d073730645af05e98ac7
* Creates parent directories before creates fileRoger Chen2014-01-091-1/+9
| | | | | Change-Id: I124f7ce2b731b100e9572d7c5d95206e243ee316 Signed-off-by: Roger Chen <cxr514033970@gmail.com>
* No directories in Downloads.Jeff Sharkey2013-10-101-0/+4
| | | | | Bug: 11166290 Change-Id: I29c9cf53c77d03d1bcf408edd693b9c24d5665b6
* Treat deleted in-progress downloads as canceled.Jeff Sharkey2013-10-041-1/+1
| | | | | | | Otherwise the download thread would keep going! Bug: 11081405 Change-Id: Ib8f1b624b29cabc782b8a0047d7b5db7e39a17de
* Always update notifications, media scanner.Jeff Sharkey2013-10-041-16/+5
| | | | | | | | | insert() was trying to be too clever, and it would end up delaying the media scanner until the next download happened. This resulted in duplicate photos in DocumentsUI. Bug: 11081685 Change-Id: Ic9549ede38118372849119dd3a21415a4723e9f5
* Ensure Downloads directory exists before create.Jeff Sharkey2013-10-041-0/+1
| | | | | Bug: 11080980 Change-Id: Iffa5402ae632ceda06e0aec6bdc73c0c4fcbeaa1
* Allow all downloads to be writable.Jeff Sharkey2013-10-013-28/+9
| | | | | Bug: 10943812 Change-Id: Ib0cb3e608c1f40a2e2fcd6e493c8f920d8b4221b
* Follow API changes.Jeff Sharkey2013-09-271-4/+2
| | | | | Bug: 10964412 Change-Id: Ia452bd056b6e01aace33acc5f1aa741af4d77c5f
* Revoke grants when downloads are deleted.Jeff Sharkey2013-09-262-0/+20
| | | | | | | | When deleting downloads, revoke any Uri permission grants, which removes from getPersistedUriPermissions(). Bug: 10928851 Change-Id: I3e90c4071385832dcb3e0cf9ca3fdccafbe30037
* Always check against canonical paths.Jeff Sharkey2013-09-251-3/+13
| | | | | Bug: 10920351 Change-Id: I8c7e5344d9fd9d15565eaf93b91ce457a98ab98c
* Allow saving to Downloads.Jeff Sharkey2013-09-233-17/+135
| | | | | | | | | | | 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
* Unified handling of errors around opening.Jeff Sharkey2013-09-182-16/+30
| | | | | | | Handle both missing downloads and missing activities. Bug: 10799449, 10713636 Change-Id: I592b07fc5cf530526803379d7f7a99e8a6b207c4
* Omit duplicate images, query for management UI.Jeff Sharkey2013-09-101-4/+38
| | | | | | | | | | | 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
* Hint sorting, remove XML, follow refactor.Jeff Sharkey2013-09-091-15/+16
| | | | | Bug: 10672973, 10577809 Change-Id: I92314c35b37ac590830e881489e6a88afd860de4
* Extend trampoline to show dialogs.Jeff Sharkey2013-09-063-51/+18
| | | | | | | | | 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
* Relay content change notifications to documents.Jeff Sharkey2013-09-051-0/+7
| | | | | Bug: 10531347 Change-Id: Ia704b233623e913da3a5cb7c8aa5e024900e1d3a
* Remove content flags to indicate */* support.Jeff Sharkey2013-09-021-3/+1
| | | | | Bug: 10597317 Change-Id: Ia32f4ec34847680135c300dfe8fe73694da4c57a
* New recent documents behavior.Jeff Sharkey2013-09-021-1/+23
| | | | | Bug: 10593596 Change-Id: I708d2396266d083a494e57eab2637471e54e1cdc
* Follow refactoring of DocumentsContract.Jeff Sharkey2013-08-311-34/+44
| | | | | Bug: 10567557 Change-Id: If03f352f865073b0e332a6a1c40cc34d83425b62
* Follow stronger DocumentsProvider contract.Jeff Sharkey2013-08-283-201/+99
| | | | | | | | Provides same functionality, but follows updated DocumentsProvider contract in framework. Bug: 10497206 Change-Id: Ie1f6180047ff7bad289679a14f3368238d47b1d6
* Trampoline APK installation to use raw file.Jeff Sharkey2013-08-192-1/+42
| | | | | | | | | 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
* Clear identity when deleting downloads.Jeff Sharkey2013-08-181-1/+6
| | | | | Bug: 10329983 Change-Id: Iff3db6e5210ae9f33ec13af91561475b269dcc40
* Support custom documents query projections.Jeff Sharkey2013-08-172-66/+55
| | | | | | | | | Uses new MatrixCursor.RowBuilder.offer() to support custom projections. Also query MIME types directly so they're always consistent. Bug: 10329983 Change-Id: I724b26e008f6ffb85940e009a916b969ead42fcd
* Delegate to documents UI; improve contents.Jeff Sharkey2013-08-152-46/+78
| | | | | | | | | 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
* First pass at Downloads storage provider.Jeff Sharkey2013-08-071-0/+302
| | | | | | | Offers a view of Downloads through the lens of DocumentsContract for surfacing in new storage UI. Change-Id: I4373c2498b4b82bfee2300a00f8d0bb734bf574c
* Count download WakeLocks against requesting app.Jeff Sharkey2013-06-061-0/+2
| | | | | | | This matches how network usage is already counted against the app making the request. Change-Id: I6a862e096f2f99441925a101268235615000355a
* Increment operation counts to track downloads.Jeff Sharkey2013-05-101-2/+7
| | | | | Bug: 8850035 Change-Id: If506ea21f0c823f9da4b7ae14d611fdbfbac8042
* Completed downloads should clear when touched.Jeff Sharkey2013-04-281-0/+1
| | | | | Bug: 8744610 Change-Id: I135a3acbc819fd725f00ba57461e21db1fe24850
* Merge "Restore the appropriate SELinux context to the downloads dir." into ↵Geremy Condra2013-04-051-2/+7
|\ | | | | | | jb-mr2-dev
| * Restore the appropriate SELinux context to the downloads dir.Geremy Condra2013-04-051-2/+7
| | | | | | | | Change-Id: I4839fd07abdd1c6b866f1d94dc36567df047e30c
* | Fix download notification click behaviour.Danny Baumann2013-04-051-5/+7
|/ | | | | | | | | 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
* New PendingIntents when extras change.Jeff Sharkey2013-03-261-2/+4
| | | | | | | Otherwise notifications end up launching with stale download IDs. Bug: 8417220 Change-Id: Ie72a2f4ac7b72213678ac6001af45709034492dd
* Unregister observer when tearing down service.Jeff Sharkey2013-03-263-5/+7
| | | | | | | Also reduce and adjust some logging. Bug: 8470658 Change-Id: Ia1f1cbd315ded04edd2113506e5c5a1db5ec85b4
* Revert "Avoid sending messages after HandlerThread.quit()."Fabrice Di Meglio2013-03-261-12/+6
| | | | | | This reverts commit 97d507d95f9885ceb12f2ce2483361b5ed265f9f Change-Id: I20374301561b3a1c79c2d986292af50049de2aac
* Avoid sending messages after HandlerThread.quit().Jeff Sharkey2013-03-251-6/+12
| | | | | Bug: 8470658 Change-Id: I4cfd6a01c2c2d845a72d3f58c29eec8b44176537
* Reduce logging, dump stacks before wtf().Jeff Sharkey2013-03-253-6/+44
| | | | | | | | | 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
* Merge "Increase timeout for domains with many DNS entries." into jb-mr2-devJeff Sharkey2013-03-211-2/+2
|\
| * Increase timeout for domains with many DNS entries.Jeff Sharkey2013-03-201-2/+2
| | | | | | | | | | Bug: 8233041 Change-Id: Ifb70273474c391ef687ba018d9ef809a359c7149
* | Defeat transparent Accept-Encoding: gzip.Jeff Sharkey2013-03-181-0/+4
|/ | | | | | | | Transparent gzip encoding doesn't allow us to easily resume partial requests, so defeat it for now. Bug: 8409417 Change-Id: I1172709c09d1153fff1ba8df072a9bef896e244d
* Fix race conditions around filename claiming.Jeff Sharkey2013-03-011-10/+20
| | | | | | | | | | | | | 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
* Adjust timeouts to reduce false-positive bugs.Jeff Sharkey2013-02-262-4/+4
| | | | | | | | | 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
* Ack, we actually need to UpdateThread.quit().Jeff Sharkey2013-02-201-8/+6
| | | | | | | | | 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
* Only use single UpdateThread.Jeff Sharkey2013-02-201-4/+5
| | | | | | | | Since DownloadService starts and stops frequently, recycle a single UpdateThread across invocations. Bug: 8233041 Change-Id: I07756fb6bfdbad811cbd58e628fdfdbf63d71bf8
* Only report speeds from full samples windows.Jeff Sharkey2013-02-192-2/+6
| | | | | | | | | | | 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