summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2017-11-09 09:52:40 -0700
committerJeff Sharkey <jsharkey@android.com>2017-11-09 10:07:08 -0700
commit0309f92e24dc5a374e2a1bd8f839e7a66a92c170 (patch)
tree41428301e284d9dd8d54ea72fd638fcb04b2949b
parenta4854bb42f64ba0b56b785541bce012eb298308b (diff)
downloadandroid_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
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java12
-rw-r--r--src/com/android/providers/downloads/RealSystemFacade.java6
-rw-r--r--src/com/android/providers/downloads/SystemFacade.java4
-rw-r--r--tests/src/com/android/providers/downloads/FakeSystemFacade.java16
4 files changed, 26 insertions, 12 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
diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
index 387db51a..7087ce6d 100644
--- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java
+++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
@@ -1,5 +1,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 org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -10,6 +13,7 @@ import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.Network;
+import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
@@ -92,14 +96,20 @@ public class FakeSystemFacade implements SystemFacade {
} else {
final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null);
info.setDetailedState(DetailedState.CONNECTED, null, null);
- info.setRoaming(mIsRoaming);
return info;
}
}
@Override
- public boolean isNetworkMetered(Network network) {
- return mIsMetered;
+ public NetworkCapabilities getNetworkCapabilities(Network network) {
+ if (mActiveNetworkType == null) {
+ return null;
+ } else {
+ final NetworkCapabilities caps = new NetworkCapabilities();
+ caps.setCapability(NET_CAPABILITY_NOT_METERED, !mIsMetered);
+ caps.setCapability(NET_CAPABILITY_NOT_ROAMING, !mIsRoaming);
+ return caps;
+ }
}
@Override