diff options
author | Jeff Sharkey <jsharkey@android.com> | 2017-11-09 09:52:40 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2017-11-09 10:07:08 -0700 |
commit | 0309f92e24dc5a374e2a1bd8f839e7a66a92c170 (patch) | |
tree | 41428301e284d9dd8d54ea72fd638fcb04b2949b /src | |
parent | a4854bb42f64ba0b56b785541bce012eb298308b (diff) | |
download | android_packages_providers_DownloadProvider-0309f92e24dc5a374e2a1bd8f839e7a66a92c170.tar.gz android_packages_providers_DownloadProvider-0309f92e24dc5a374e2a1bd8f839e7a66a92c170.tar.bz2 android_packages_providers_DownloadProvider-0309f92e24dc5a374e2a1bd8f839e7a66a92c170.zip |
Move to NOT_ROAMING capability.
Checking new capability is perferred way to verify a network isn't
roaming; isRoaming() is now deprecated.
Test: bit DownloadProviderTests:*
Bug: 68397798
Change-Id: I11d19fd5a389b52e199c604a6906423d405072e2
Diffstat (limited to 'src')
3 files changed, 13 insertions, 9 deletions
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 984d2fcd..cbdde448 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -16,6 +16,8 @@ package com.android.providers.downloads; +import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; +import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING; import static android.provider.Downloads.Impl.COLUMN_CONTROL; import static android.provider.Downloads.Impl.COLUMN_DELETED; import static android.provider.Downloads.Impl.COLUMN_STATUS; @@ -57,6 +59,7 @@ import android.drm.DrmOutputStream; import android.net.ConnectivityManager; import android.net.INetworkPolicyListener; import android.net.Network; +import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkPolicyManager; import android.net.TrafficStats; @@ -718,15 +721,16 @@ public class DownloadThread extends Thread { // checking connectivity will apply current policy mPolicyDirty = false; - final NetworkInfo info = mSystemFacade.getNetworkInfo(mNetwork, mInfo.mUid, - mIgnoreBlocked); + final NetworkInfo info = mSystemFacade.getNetworkInfo(mNetwork, mInfo.mUid, mIgnoreBlocked); + final NetworkCapabilities caps = mSystemFacade.getNetworkCapabilities(mNetwork); if (info == null || !info.isConnected()) { throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is disconnected"); } - if (info.isRoaming() && !mInfo.isRoamingAllowed()) { + if (!caps.hasCapability(NET_CAPABILITY_NOT_ROAMING) + && !mInfo.isRoamingAllowed()) { throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is roaming"); } - if (mSystemFacade.isNetworkMetered(mNetwork) + if (!caps.hasCapability(NET_CAPABILITY_NOT_METERED) && !mInfo.isMeteredAllowed(mInfoDelta.mTotalBytes)) { throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is metered"); } diff --git a/src/com/android/providers/downloads/RealSystemFacade.java b/src/com/android/providers/downloads/RealSystemFacade.java index 7bcdb795..9d07999b 100644 --- a/src/com/android/providers/downloads/RealSystemFacade.java +++ b/src/com/android/providers/downloads/RealSystemFacade.java @@ -62,9 +62,9 @@ class RealSystemFacade implements SystemFacade { } @Override - public boolean isNetworkMetered(Network network) { - return !mContext.getSystemService(ConnectivityManager.class).getNetworkCapabilities(network) - .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED); + public NetworkCapabilities getNetworkCapabilities(Network network) { + return mContext.getSystemService(ConnectivityManager.class) + .getNetworkCapabilities(network); } @Override diff --git a/src/com/android/providers/downloads/SystemFacade.java b/src/com/android/providers/downloads/SystemFacade.java index 8be25c21..788ead64 100644 --- a/src/com/android/providers/downloads/SystemFacade.java +++ b/src/com/android/providers/downloads/SystemFacade.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.net.Network; +import android.net.NetworkCapabilities; import android.net.NetworkInfo; import java.security.GeneralSecurityException; @@ -36,8 +37,7 @@ interface SystemFacade { public Network getNetwork(JobParameters params); public NetworkInfo getNetworkInfo(Network network, int uid, boolean ignoreBlocked); - - public boolean isNetworkMetered(Network network); + public NetworkCapabilities getNetworkCapabilities(Network network); /** * @return maximum size, in bytes, of downloads that may go over a mobile connection; or null if |