History log of /packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
50522c738bf68d2784ce4f52dd34188a491065b8 19-Apr-2017 Jeff Sharkey <jsharkey@android.com> Keep shared downloads when apps are uninstalled.

When an app downloads files to external storage, keep those downloads
around for the user to enjoy after the app is uninstalled.

We still end up deleting files stored in internal cache directories,
and under package-specific directories on external storage.

Test: builds, boots, downloads on external storage remain
Bug: 30868200
Change-Id: Ib70f42aa764a8252fe67c6fba9d60b3350f5d5a4
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
3a5f5eafb34eaa4963c801882148e8f61514a61b 21-Apr-2016 Jeff Sharkey <jsharkey@android.com> Move DownloadManager to use JobScheduler.

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
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
6971133998ddc8c8c6b37b2fdaaec1d3ed152e90 19-Jun-2015 Oren Blasberg <orenb@google.com> Add "Cancel" action to downloads in notification.

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
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
1f2c2c560400ba60c5b9dfd6fd4f5e73b232803a 07-Feb-2014 Jeff Sharkey <jsharkey@android.com> Add idle service to clean orphan downloads.

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
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
9b731a5521f569c91aeb419d43fa098a34cf78cb 27-Jan-2014 Doug Zongker <dougz@android.com> Revert "change download provider to use system log"

This reverts commit 4f9d2d04003fafb358d7c127054055b3a9732c9b, was only
wanted for debugging.
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
4f9d2d04003fafb358d7c127054055b3a9732c9b 27-Jan-2014 Doug Zongker <dougz@android.com> change download provider to use system log

Try to catch the download provider in the act of deleting pending
system updates.

Bug: 12680933
Change-Id: If58aba5c30fd624217e5d073730645af05e98ac7
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
8ec87ea5a5c191554d6205d4c779768664b1724b 18-Sep-2013 Jeff Sharkey <jsharkey@android.com> Unified handling of errors around opening.

Handle both missing downloads and missing activities.

Bug: 10799449, 10713636
Change-Id: I592b07fc5cf530526803379d7f7a99e8a6b207c4
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
f818eecf1b60ddba2854314863243d6aa87707b0 27-Nov-2012 Jeff Sharkey <jsharkey@android.com> Update extras for in-progress download.

Follow move to EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS extras, which
was missing during refactoring.

Bug: 7617373
Change-Id: I26203a2bc6fc0e211a1aa602c0de018332d76f60
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
a40a349c0107660bfb4004467550725a3ca3ec97 03-Aug-2012 Jeff Sharkey <jsharkey@android.com> Rewrite of download notifications.

Switch to using new inbox-style notifications when collapsing multiple
downloads. Correctly handles clustering, including cancellation of
stale notifications. All notifications are now handled in a single
class, making it easier to reason about correctness.

Fixed bugs around handling of visibility flags. Move away from using
"int" as internal keys, since they can overflow. Started work for
time estimates, will finish in a future CL.

Explicitly pass all relevant IDs to DownloadReceiver instead of doing
a second racy query. Fix StrictMode warnings when querying in
DownloadReceiver.

Bug: 6777872, 5463678, 6663547, 6967346, 6634261, 5608365
Change-Id: I5eb47b73b90b6250acec2ce5bf8d7a274ed9d3a9
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
a2304fb28026f3da1bb91931c4cdd52110c82577 24-Sep-2012 Ruben Brunk <rubenbrunk@google.com> Remove FLAG_ACTIVITY_NEW_TASK from the VIEW intent.

Bug: 7164238
Bug: 7237908

Got rid of FLAG_ACTIVITY_NEW_TASK for proper back behavior

Change-Id: I50af9aeafb27d6079bda4f81f4a116b6bb600676
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
c0622bf896c1af62b0e69b18cd84c7de3b67beb3 28-Aug-2012 Jeff Sharkey <jsharkey@android.com> Send ORIGINATING_URI and REFERRER to installer.

When building PackageInstaller intents, include ORIGINATING_URI and
REFERRER extras. Unify view intent building for both notifications
and list UI.

Bug: 6900672
Change-Id: I18435e0f8aa549880ec594f82b6a250232706135
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
36612d27b67ff2e79ffff8eb12d95d2058abde02 25-Jul-2012 Jeff Sharkey <jsharkey@android.com> Move notification tests to LittleMock.

Directly mock NotificationManager instead of using SystemFacade.

Change-Id: If932d26e23816e8674469c275a828701cce5fc2d
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
515cf53eb94b8873aa6a1edcd6a962f0b0ca2170 30-Jan-2012 Jeff Sharkey <jsharkey@android.com> Move away from deprecated NetworkInfo extra.

Because the NetworkInfo included in CONNECTIVITY_ACTION broadcast
extra does not reflect the state applicable to the calling UID, and
the last sticky broadcast may have stale state, transition to calling
ConnectivityManager.getActiveNetworkInfo() directly.

Change-Id: Ie7a143e621e5a3a013ec6d8b8613709e7787dc0c
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
0a17c2a28738d6ecb274def0e8e54f556d89f5f3 16-Feb-2011 Gloria Wang <gwang@google.com> Download provider change for DRM Forward Lock plugin:
to convert .dm files to .fl files during downloading
For bug 3188041

Change-Id: I882b851664432fba3e57dc25a6be827b48006e69
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
789745f667c65661d82ccbd5ef49fdb132911736 09-Feb-2011 Vasu Nori <vnori@google.com> bug:3435895 listen to media_mounted broadcast intent

and retry downloads that failed due to the error "sdcard media not mounted"

Change-Id: Id181b8167d331214f72679c85f18cc8b9b969e40
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
2e6672d1249a0fcb147632ecb97133d15076d9e8 27-Oct-2010 Vasu Nori <vnori@google.com> in DM public API, sending notifications on clicks should include data

receiving application needs to know WHAT items the clicks occurred on -
not just the fact that *something* was clicked on.
this is duplicating the behavior as it exists today in the non-public API.

depends on Change-Id: Ibe53ccd9934c73175459e42e3d417eee69ae6735

Change-Id: I924f85bd5faf443ac5648839b68390ec4de1f677
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
04f09085f85d094207d22ae8969102bd48178180 20-Oct-2010 Vasu Nori <vnori@google.com> remove usage of hidden public constants.

Change-Id: I2edf1bef5e741de8193cb293807e3ace42003b0c
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
a1448628237471a7a2aeb67b560b1502c2bd5ba8 28-Sep-2010 Steve Howard <showard@google.com> Manual merge: Moved DownloadManager to android.app

Change-Id: Id1de44459ec1bf53e928cae826047467b355823d
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
3398db8f3b195959faa2a7cf09918f364432ac28 15-Sep-2010 Steve Howard <showard@google.com> Fix notification bugs, cleanup DownloadService + DownloadReceiver

This change started out just fixing a few regressions related to
notifications:

* Browser downloads weren't picking up a title from the determined
filename. This was due to my change to default the title field to
"" instead of null.

* Notification click/hide events weren't being handled properly. This
was due to previous change to the URI structure of DownloadProvider.
DownloadReceiver needed to be changed to perform queries through
/all_downloads URIs, like all other parts of the download manager
code. I did some general refactoring of the DownloadReceiver code
while I was there.

* The code in DownloadNotification wasn't picking up some updates to
downloads properly. This was due to my change to make
DownloadNotification use the DownloadInfo objects rather than
querying the database directly, so that it could make use of info
provided by the DownloadThread that didn't go into the DB. Fixing
this didn't turn out to be all that complicated, but along the way
to figuring this out I made some substantial refactoring in
DownloadService which made it much cleaner anyway and eliminated a
lot of duplication. That's something that had to happen eventually,
so I'm leaving it all in.

Change-Id: I847ccf80e3d928c84e36bc24791b33204104e1b2
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
93155e1da7e89d4925e244f5afa94afb8ada7381 24-Jul-2010 Steve Howard <showard@google.com> Stub out and test system notifications.

This change abstracts NotificationManager interactions behind
SystemFacade and takes advantage of that to test notifications, to a
limited degree.

It also fixes a silly typo in AbstractDownloadManagerFunctionalTest,
and it introduces an extra sleep between tests to avoid some
flakiness. I'll look for a better solution to that problem after this
change goes in.

Change-Id: I3a0307f828955cd45b0e3581ad499da28cc0556e
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
0a77c62a82503b38c484e0079648f0231dd85d53 21-Jul-2010 Steve Howard <showard@google.com> Public API support for broadcasts and connectivity control.

* Three new DB fields, one indicating whether a download was initiated by the public API or not, two to hold connectivity control info. DB migration to add these fields and code in DownloadProvider.insert() to handle them.
* Change broadcast intent code to match public API spec, for public API downloads only. (Legacy code can go away once existing clients are converted over to the new API.)
* Introduce SystemFacade methods for sending broadcasts and checking package ownership; this facilitates new tests of broadcast code.
* Change DownloadInfo.canUseNetwork() to obey new connectivity controls available in public API, but again, retain legacy behavior for downloads initiated directly through DownloadProvider
* New test cases to cover the new behavior

Also made a couple changes to reduce some test flakiness I was observing:
* in tearDown(), wait for any running UpdateThread to complete
* in PublicApiFunctionalTest.setUp(), if the test directory already exists, remove it rather than aborting

DB changes for broadcast + roaming support

Change-Id: I60f39fc133f678f3510880ea6eb9f639358914b4
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
af28400b74de05862b470412a5c92f68e99f59f8 16-Jul-2010 Steve Howard <showard@google.com> Introduce a seam to ConnectivityManager and TelephonyManager

This change abstracts access to ConnectivityManager and
TelephonyManager behind methods on SystemFacade, moving the code from
Helpers into RealSystemFacade and adding fake implementations to
FakeSystemFacade. This facilitates new connectivity tests.

Change-Id: Id6c6b861e1d4ca45b3c1572bfb8ae0aa26af756b
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
7dd92fa94df0a13b4592ee636b7aa2b605f6b473 08-Jan-2010 Jean-Baptiste Queru <jbq@google.com> Use the private legacy API

The public API is getting deeply reworked for forward compatibility,
but since the Download Manager and the Browser need to continue using
the old API, a separate copy is being kept on the side.

Bug: 2245521

Change-Id: I85eff6ba9efc68600aa80e8dffa6720b0f2ed155
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
2061c03400a8e23cfeee5394b7e71db2440a48ed 24-Sep-2009 Jean-Baptiste Queru <jbq@google.com> Remove unnecessary logging

Also tweak some slightly inaccurate logging, and add a note
about a potential bug.

BUG=2055624
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
e2607d88081f02a418ff5d5067f5327d513e00a1 23-Sep-2009 Jean-Baptiste Queru <jbq@google.com> Add a bit more logging to track down network state issues.

BUG=2055624
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
a581a4af046fd82b5854d213519e3f418047c0ba 21-Sep-2009 Jean-Baptiste Queru <jbq@google.com> Add logging to track connectivity as seen from the Download Manager.

This is enabled by a separate build-time constant, so that it can
be turned on for everyone without having to use a system property.

BUG=2055624
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
59910f4a9ce953ea74c8db759448f227c96796b3 20-Jan-2009 Jean-Baptiste Queru <jbq@google.com> Use the new download manager APIs introduced in change 7400
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
c6f5aad265cfc36a64cd2bdb5adf3cc9736bbd80 20-Jan-2009 Jean-Baptiste Queru <jbq@google.com> Match the official code style guide.

This fixes a number of style violations that weren't caught by automated
tools and brings those files closer to compliance with the official style
guide for this language.
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
1fbad9cfa532f13f6cf03f542febf2e4689edec5 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java
57f55b3cb4f7e4136cde8d1ea12c1e70ec903362 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/packages/providers/DownloadProvider/src/com/android/providers/downloads/DownloadReceiver.java