diff options
author | Jeff Sharkey <jsharkey@android.com> | 2012-04-17 12:26:06 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2012-04-17 12:28:25 -0700 |
commit | a7ae77fdae69bcc6d6609d4639fed5d96e55eeaa (patch) | |
tree | 5021a8ffe6ceadb1e39fba775caccf5d18c1d22c /src/com/android/providers/downloads/DownloadInfo.java | |
parent | 9b606340a0b5b88436505651dbe3cdaf60117604 (diff) | |
download | android_packages_providers_DownloadProvider-a7ae77fdae69bcc6d6609d4639fed5d96e55eeaa.tar.gz android_packages_providers_DownloadProvider-a7ae77fdae69bcc6d6609d4639fed5d96e55eeaa.tar.bz2 android_packages_providers_DownloadProvider-a7ae77fdae69bcc6d6609d4639fed5d96e55eeaa.zip |
Add and enforce ALLOW_METERED column.
Include flag with each download to indicate if its allowed to proceed
over metered networks. Downloads are left in WAITING_FOR_NETWORK
state, similar to how ALLOWED_NETWORK_TYPES is handled.
Also keep blocked downloads in WAITING_FOR_NETWORK state instead
of marking them as failed.
Bug: 3001465, 5734560
Change-Id: I80bb9aa9bd25ddf6f7a2472db344b6ba6878bd74
Diffstat (limited to 'src/com/android/providers/downloads/DownloadInfo.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadInfo.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java index 1e670e12..28adfbdf 100644 --- a/src/com/android/providers/downloads/DownloadInfo.java +++ b/src/com/android/providers/downloads/DownloadInfo.java @@ -92,6 +92,7 @@ public class DownloadInfo { info.mIsPublicApi = getInt(Downloads.Impl.COLUMN_IS_PUBLIC_API) != 0; info.mAllowedNetworkTypes = getInt(Downloads.Impl.COLUMN_ALLOWED_NETWORK_TYPES); info.mAllowRoaming = getInt(Downloads.Impl.COLUMN_ALLOW_ROAMING) != 0; + info.mAllowMetered = getInt(Downloads.Impl.COLUMN_ALLOW_METERED) != 0; info.mTitle = getString(Downloads.Impl.COLUMN_TITLE); info.mDescription = getString(Downloads.Impl.COLUMN_DESCRIPTION); info.mBypassRecommendedSizeLimit = @@ -221,6 +222,7 @@ public class DownloadInfo { public boolean mIsPublicApi; public int mAllowedNetworkTypes; public boolean mAllowRoaming; + public boolean mAllowMetered; public String mTitle; public String mDescription; public int mBypassRecommendedSizeLimit; @@ -352,6 +354,9 @@ public class DownloadInfo { if (!isRoamingAllowed() && mSystemFacade.isNetworkRoaming()) { return NETWORK_CANNOT_USE_ROAMING; } + if (!mAllowMetered && mSystemFacade.isActiveNetworkMetered()) { + return NETWORK_TYPE_DISALLOWED_BY_REQUESTOR; + } return checkIsNetworkTypeAllowed(info.getType()); } @@ -518,6 +523,7 @@ public class DownloadInfo { pw.printPair("mAllowedNetworkTypes", mAllowedNetworkTypes); pw.printPair("mAllowRoaming", mAllowRoaming); + pw.printPair("mAllowMetered", mAllowMetered); pw.println(); pw.decreaseIndent(); |