summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2017-10-25 16:13:55 -0600
committerJeff Sharkey <jsharkey@android.com>2017-10-25 16:13:57 -0600
commita4854bb42f64ba0b56b785541bce012eb298308b (patch)
tree4d36f990af0c89b0fc945c3c5892eea29ba7da62 /src
parentd52fa66c75da2055bbe1b92b2e31b0342251002f (diff)
downloadandroid_packages_providers_DownloadProvider-a4854bb42f64ba0b56b785541bce012eb298308b.tar.gz
android_packages_providers_DownloadProvider-a4854bb42f64ba0b56b785541bce012eb298308b.tar.bz2
android_packages_providers_DownloadProvider-a4854bb42f64ba0b56b785541bce012eb298308b.zip
Provide data estimate to JobScheduler when known.
This gives the system better insight into the shape/size of network traffic that our download jobs will be doing. Test: verified via DownloadManager Bug: 67040695, 64133169 Change-Id: I7f77e693173fe0050ba6ca0353780a46e205ffcc
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/Helpers.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index 2b55eb87..963ca9da 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -41,6 +41,7 @@ import android.os.UserHandle;
import android.os.storage.StorageManager;
import android.os.storage.StorageVolume;
import android.provider.Downloads;
+import android.text.TextUtils;
import android.util.Log;
import android.webkit.MimeTypeMap;
@@ -164,6 +165,17 @@ public class Helpers {
builder.setRequiresDeviceIdle(true);
}
+ // Provide estimated network size, when possible
+ if (info.mTotalBytes > 0) {
+ if (info.mCurrentBytes > 0 && !TextUtils.isEmpty(info.mETag)) {
+ // If we're resuming an in-progress download, we only need to
+ // download the remaining bytes.
+ builder.setEstimatedNetworkBytes(info.mTotalBytes - info.mCurrentBytes);
+ } else {
+ builder.setEstimatedNetworkBytes(info.mTotalBytes);
+ }
+ }
+
// If package name was filtered during insert (probably due to being
// invalid), blame based on the requesting UID instead
String packageName = info.mPackage;