summaryrefslogtreecommitdiffstats
path: root/src/com
Commit message (Collapse)AuthorAgeFilesLines
* Make scanning decisions based on latest data.Jeff Sharkey2016-06-252-4/+5
| | | | | | | | | When deciding to kick off a media scan of a newly-downloaded file, use the latest values from InfoDelta, instead of stale values from the last database read, which may lead us to skip the scan. Bug: 29234780 Change-Id: I7ffbcdd1edb9965999b7f5f100f57a9c2933f3a5
* Re-schedule downloads queued for unmetered.Jeff Sharkey2016-06-222-8/+16
| | | | | | | | | | When a download is stopped due to a metered network, we should reschedule the job just like any other network failure. If a download requires an unmetered network, treat WAITING_FOR_NETWORK as QUEUED_FOR_WIFI so we show a meaningful notification. Bug: 29440531 Change-Id: I31e6535c575fd32e2982ef840ae501acf1db3927
* Update notifications when no jobs are scheduled.Jeff Sharkey2016-06-221-4/+11
| | | | | | | | | | When inserting an already-completed download, we don't schedule a job, leaving notifications stale until the next real download comes along. This change kicks off a notification update pass in these cases to ensure we reflect the internal state. Bug: 29548026 Change-Id: I6ff87d69d83c265738d5e035197204bbb63cfa81
* Use calling app's Network Security Config for HTTPS downloadsChad Brubaker2016-06-203-0/+48
| | | | | Bug:29505888 Change-Id: Ifc33fd75e44d1dbc5a4ce5caa8e1ff938b94623e
* Only show queued notification when "visible."Jeff Sharkey2016-05-261-1/+8
| | | | | | | | Otherwise it's confusing to see notifications for downloads that are otherwise invisible. Bug: 28623639 Change-Id: I1b2aeccfcca1369f66c56c441dfef68ee95c6d62
* Implemented onRestrictBackgroundBlacklistChanged().Felipe Leme2016-05-161-0/+8
| | | | | | BUG: 28743623 Change-Id: I314febe06e5516dfa69062da691e0189b051dac5
* Merge "Removed onRestrictPowerChanged()." into nyc-devTreeHugger Robot2016-05-131-6/+0
|\
| * Removed onRestrictPowerChanged().Felipe Leme2016-05-101-6/+0
| | | | | | | | | | | | BUG: 28521946 Change-Id: I32129977c121b610bdd1a780fd371baaff3ead4b
* | Merge "Allow viewing content:// Uris from Downloads." into nyc-devTomasz Mikolajewski2016-05-111-4/+1
|\ \
| * | Allow viewing content:// Uris from Downloads.Tomasz Mikolajewski2016-05-091-4/+1
| |/ | | | | | | | | Bug: 28476442 Change-Id: I12a35a2c35c16ddf899637dfb85c30006c169fd7
* / Scan completed downloads when requested.Jeff Sharkey2016-05-092-4/+17
|/ | | | | | | | | | The recent JobScheduler rewrite means we no longer spin up a service when insterting an already-completed download. However, the calling app may have requested the download to be scanned, so kick off a scan request for them. Bug: 28659693 Change-Id: I497e10995ba04f1522fe8d7e547ebea6e305f6e9
* Implemented onRestrictPowerChanged().Felipe Leme2016-05-031-0/+6
| | | | | BUG: 28521946 Change-Id: I31658e680e67da9e1a420a9749a67949cfe09689
* Merge "Add ability to rename a downloaded file." into nyc-devBen Lin2016-05-021-1/+20
|\
| * Add ability to rename a downloaded file.Ben Lin2016-04-291-1/+20
| | | | | | | | | | Bug: 28359663 Change-Id: Id74ab041717f553bbd81ab2f69b1b8fa0d4d230d
* | Visible downloads should run while blocked/dozing.Jeff Sharkey2016-04-295-20/+42
|/ | | | | | | | | | | Downloads with visible notifications should behave as if the requesting app was running a foreground service. The easiest way to implement this for now is to ignore any BLOCKED network status and use the new setWillBeForeground() API so job scheduling ignores any active blocked/dozing status. Bug: 26571724 Change-Id: I8ea2b2a7cdb5f469adc11b4d897ff55bd8a9db9a
* Move DownloadManager to use JobScheduler.Jeff Sharkey2016-04-2514-1283/+711
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JobScheduler is in a much better position to coordinate tasks across the platform to optimize battery and RAM usage. This change removes a bunch of manual scheduling logic by representing each download as a separate job with relevant scheduling constraints. Requested network types, retry backoff timing, and newly added charging and idle constraints are plumbed through as job parameters. When a job times out, we halt the download and schedule it to resume later. The majority of downloads should have ETag values to enable resuming like this. Remove local wakelocks, since the platform now acquires and blames our jobs on the requesting app. When an active download is pushing updates to the database, check for both paused and cancelled state to quickly halt an ongoing download. Shift DownloadNotifier to update directly based on a Cursor, since we no longer have the overhead of fully-parsed DownloadInfo objects. Unify a handful of worker threads into a single shared thread. Remove legacy "large download" activity that was thrown in the face of the user; the UX best-practice is to go through notification, and update that dialog to let the user override and continue if under the hard limit. Bug: 28098882, 26571724 Change-Id: I33ebe59b3c2ea9c89ec526f70b1950c734abc4a7
* Implemented onRestrictBackgroundWhitelistChanged().Felipe Leme2016-04-191-0/+6
| | | | | BUG: 27481520 Change-Id: I84db23b62f60dadefc01ead78f13ed689943baad
* Extra comments for multinetwork downloadingRobin Lee2016-04-081-0/+4
| | | | | Bug: 27074270 Change-Id: I7145fcdf0c8af0f0c299ca491f01eaef6204e2cb
* Merge "Implement multi-network downloads" into nyc-devRobin Lee2016-04-073-1/+20
|\
| * Implement multi-network downloadsRobin Lee2016-04-073-1/+20
| | | | | | | | | | | | | | | | | | Downloads should use the default network for the caller. This prevents applications from, for example, bypassing VPN by routing all requests through the DownloadProvider. Bug: 27074270 Change-Id: I7830226dd2910757d3a5c78f373330f84637ccfa
* | Remove stale download notifications.Jeff Sharkey2016-04-041-3/+5
| | | | | | | | | | Bug: 27971263 Change-Id: Ia68d43828ecc32c1b6a656a0d3bb751b2a2e7881
* | Avoid flashing download notifications.Jeff Sharkey2016-03-302-3/+14
|/ | | | | | | | | When service starts, use new API to read the current set of notification tags from the system instead of clearing and starting from scratch. Bug: 27634130 Change-Id: I049fe5e445a62a52042d7638c2cb50417977435f
* Remove chmod(0644) for finished downloads.Jeff Sharkey2016-03-211-6/+0
| | | | | | | | | | Now that PackageInstaller can read APKs from content:// Uris, we don't need to make downloads world-readable. This is mostly just cleanup, since our top-level private data directory is no longer o+x, so other apps can't traverse in anyway. Bug: 5464052 Change-Id: I45de6a40c28b85c64d5afbc13068fe3ae8341d93
* Mark incomplete downloads as partial.Steve McKay2016-03-151-1/+3
| | | | | Bug: 27526321 Change-Id: Ic29bc235242a8b87ab8321ee201cb7918594366f
* Use resolved path for both checking and opening.Jeff Sharkey2016-02-082-10/+22
| | | | | | | | This avoids a race condition where someone can change a symlink target after the security checks have passed. Bug: 26211054 Change-Id: I5e1a2343d631109c21a4c5b2d8d00b2946756680
* Merge "Migrate the DownloadProvider's trampoline to use SAF Uris."Tomasz Mikolajewski2016-02-031-4/+7
|\
| * Migrate the DownloadProvider's trampoline to use SAF Uris.Tomasz Mikolajewski2016-02-031-4/+7
| | | | | | | | Change-Id: I551f830637e023f810a08ba549ecbb7f717b4e9c
* | Always return FLAG_ARCHIVE for archives in DownloadProvider.Tomasz Mikolajewski2016-02-021-7/+6
|/ | | | | | | The logic for manage/non-manage UI is moved to DocumentsUI. Bug: 26321218 Change-Id: I1c9d24bdee493d31fe3bcea2eed877529bc1c32a
* Temporary hack to keep file:// Uris working.Jeff Sharkey2016-01-281-0/+4
| | | | | Bug: 26860922 Change-Id: I9e6d513dedd6c82bd4a582542a9094394d74db5d
* Merge "Revert "Use resolved path for both checking and opening."" into ↵Jeff Sharkey2016-01-232-8/+6
|\ | | | | | | | | | | | | | | | | mnc-dr1.5-dev am: ce08ce4bdb am: 15185cff91 * commit '15185cff911670eba8f742fe8a2f26de5ed657fe': Revert "Use resolved path for both checking and opening."
| * Revert "Use resolved path for both checking and opening."Jeff Sharkey2016-01-222-8/+6
| | | | | | | | | | | | This reverts commit 366af2ee1f841615d44ab770b537112d769eed05. Change-Id: Id1155425ebcae23be8ce3916f19dda82eee992c4
| * Use resolved path for both checking and opening.Jeff Sharkey2016-01-142-6/+8
| | | | | | | | | | | | | | | | This avoids a race condition where someone can change a symlink target after the security checks have passed. Bug: 26211054 Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
* | Merge "Assign a null timestamp to active downloads."Ben Kwa2016-01-091-1/+5
|\ \
| * | Assign a null timestamp to active downloads.Ben Kwa2016-01-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it such that ordering downloads by timestamp doesn't continually shuffle stuff around if the UI happens to be sorting files by mod time. BUG=26417297 Change-Id: Ibe51513ee5d27ff959f8e7a2a5bad7244c3a731f
* | | Opening downloads also needs filename access.Jeff Sharkey2016-01-081-0/+1
| | | | | | | | | | | | | | | Bug: 26454235 Change-Id: I61d68f694e6460b46a56b111092094a3111c291b
* | | Use resolved path for both checking and opening.Jeff Sharkey2016-01-072-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | This avoids a race condition where someone can change a symlink target after the security checks have passed. Bug: 26211054 Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
* | | Request access to the filename column.Jeff Sharkey2016-01-071-0/+1
|/ / | | | | | | | | | | | | | | Otherwise it would throw at us because it's deprecated for third-party apps. Bug: 26438975 Change-Id: Ifd8f0b61ce475a009ef68ef4cb29f5f3780ced70
* | Merge "Wire zip archives to Downloads."Tomasz Mikolajewski2015-12-251-6/+39
|\ \
| * | Wire zip archives to Downloads.Tomasz Mikolajewski2015-12-251-6/+39
| | | | | | | | | | | | | | | Bug: 20176812 Change-Id: Id7b207898d5b0fb2013d07e2da3302b09e4995fe
* | | Report to DeviceIdleController when downloads are active.Dianne Hackborn2015-11-121-0/+15
|/ / | | | | | | Change-Id: Ie0373c1f2a6be16cd1cfc197a8350582c00c6871
* | am 962dc684: am 0e4082c8: am 6a25eda3: am 94fc3343: am 8b2880ba: Give ↵Jeff Sharkey2015-07-291-1/+2
|\| | | | | | | | | | | | | secondary users read-only physical cards. * commit '962dc684806d1104eb30d4fb1aa0391e917a88c9': Give secondary users read-only physical cards.
| * Give secondary users read-only physical cards.Jeff Sharkey2015-07-281-1/+2
| | | | | | | | | | | | | | Follow method refactoring so we only consider writable locations. Bug: 22787184 Change-Id: Ib8b037216d23ab474d7e0df427671d174eaf030a
* | am fe7f7654: am c0c1c15d: am 4a4f35e4: am c478f1e7: am b8bc2a76: Switch to ↵Jeff Sharkey2015-07-251-2/+2
|\| | | | | | | | | | | | | proxy variants of app-ops calls. * commit 'fe7f76546048b04f1590aea96617efbe0a4bd9d2': Switch to proxy variants of app-ops calls.
| * Switch to proxy variants of app-ops calls.Jeff Sharkey2015-07-241-2/+2
| | | | | | | | | | Bug: 22718722 Change-Id: I9c054956c3b3655332475607d6919dc34515e550
* | am b74a55a3: am f5170c41: am 7a61721e: am 546250aa: am ed30deae: Relax ↵Jeff Sharkey2015-07-144-26/+114
|\| | | | | | | | | | | | | permissions on package-specific paths. * commit 'b74a55a36392d514f27952e7e2bf4af809ab48ae': Relax permissions on package-specific paths.
| * Relax permissions on package-specific paths.Jeff Sharkey2015-07-144-26/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally apps must hold the WRITE_EXTERNAL_STORAGE permission in order to use DownloadManager. However, now that the platform has relaxed permissions on package-specific directories, we relax the DownloadManager check in a similar way. This also opens up using DownloadManager to save files on secondary external storage devices. Fix bug so that we now check the relevant volume state when thinking about resuming a download. Bug: 22135060 Change-Id: If439340ea48789ea167f49709b5b69a4f0883150
* | Add "Cancel" action to downloads in notification.Oren Blasberg2015-06-253-1/+61
|/ | | | | | | | | | | | Add a "Cancel" action to in-progress downloads shown in notification pane. We add a new action type for a new "cancel" intent sent by DownloadNotifier to DownloadReceiver, which in turn cancels the download by way of DownloadManager. BUG=19972464 Change-Id: I83cd2f40e1442c327f756027b99f9eac913a0e70
* Create a handler threadTodd Kennedy2015-06-191-1/+5
| | | | | | | | | | The onCreate() method [where we initialize the handler] runs on the main thread. This means the ParcelFileDescriptor also runs tasks involving disk access on the main thread. We need to create a separate thread to run the Content Provider's handler. Bug: 19718299 Change-Id: Ia3661fafd3442ad6260f04253ba24ddf83b176b2
* Actually delete files when rows are deleted.Jeff Sharkey2015-06-161-5/+12
| | | | | | | Otherwise they're orphaned until the next idle maintenance pass. Bug: 21786983 Change-Id: I6eb2240d657366b65482bd3a0d5683e5d34a541a
* Don't call size() on a null ListChristopher Tate2015-06-081-5/+7
| | | | | | | | | JobScheduler.getAllPendingJobs() can return null when there are none. Deal with it. Bug 21642868 Change-Id: I11fcc6e146f9db51e03dcf57f7518bb7878fbd28