summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/SystemFacade.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2016-04-20 23:23:09 -0600
committerJeff Sharkey <jsharkey@android.com>2016-04-25 12:59:46 -0600
commit3a5f5eafb34eaa4963c801882148e8f61514a61b (patch)
treec38ae2f58cb39e4e17be37e8eec2fe040b4b6436 /src/com/android/providers/downloads/SystemFacade.java
parentdbcd4cfe7f0fed77a77afb1c1d242a508fc5462a (diff)
downloadandroid_packages_providers_DownloadProvider-3a5f5eafb34eaa4963c801882148e8f61514a61b.tar.gz
android_packages_providers_DownloadProvider-3a5f5eafb34eaa4963c801882148e8f61514a61b.tar.bz2
android_packages_providers_DownloadProvider-3a5f5eafb34eaa4963c801882148e8f61514a61b.zip
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
Diffstat (limited to 'src/com/android/providers/downloads/SystemFacade.java')
-rw-r--r--src/com/android/providers/downloads/SystemFacade.java17
1 files changed, 3 insertions, 14 deletions
diff --git a/src/com/android/providers/downloads/SystemFacade.java b/src/com/android/providers/downloads/SystemFacade.java
index 7f97b919..e7852e95 100644
--- a/src/com/android/providers/downloads/SystemFacade.java
+++ b/src/com/android/providers/downloads/SystemFacade.java
@@ -27,33 +27,22 @@ interface SystemFacade {
*/
public long currentTimeMillis();
- /**
- * @return Currently active network, or null if there's no active
- * connection.
- */
- public NetworkInfo getActiveNetworkInfo(int uid);
-
public Network getActiveNetwork(int uid);
- public boolean isActiveNetworkMetered();
-
- /**
- * @see android.telephony.TelephonyManager#isNetworkRoaming
- */
- public boolean isNetworkRoaming();
+ public NetworkInfo getNetworkInfo(Network network);
/**
* @return maximum size, in bytes, of downloads that may go over a mobile connection; or null if
* there's no limit
*/
- public Long getMaxBytesOverMobile();
+ public long getMaxBytesOverMobile();
/**
* @return recommended maximum size, in bytes, of downloads that may go over a mobile
* connection; or null if there's no recommended limit. The user will have the option to bypass
* this limit.
*/
- public Long getRecommendedMaxBytesOverMobile();
+ public long getRecommendedMaxBytesOverMobile();
/**
* Send a broadcast intent.