diff options
author | Jeff Sharkey <jsharkey@android.com> | 2017-10-25 16:13:55 -0600 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2017-10-25 16:13:57 -0600 |
commit | a4854bb42f64ba0b56b785541bce012eb298308b (patch) | |
tree | 4d36f990af0c89b0fc945c3c5892eea29ba7da62 /src | |
parent | d52fa66c75da2055bbe1b92b2e31b0342251002f (diff) | |
download | android_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.java | 12 |
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; |