aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2016-08-25 20:51:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-08-25 20:51:18 +0000
commit9c1c0e035dd87d3020dfce2ea0abcad2e57c57a1 (patch)
treef7ec4a5efc94f95fb4af0de72f0bb3f3fd778b0d /src/java/com/android/internal/telephony
parent9dab89f2ed6958a6d97b7b330f3842ea03674ecf (diff)
parent76c5a9479d312139740dcaf7644172f2beb2f7e0 (diff)
downloadandroid_frameworks_opt_telephony-9c1c0e035dd87d3020dfce2ea0abcad2e57c57a1.tar.gz
android_frameworks_opt_telephony-9c1c0e035dd87d3020dfce2ea0abcad2e57c57a1.tar.bz2
android_frameworks_opt_telephony-9c1c0e035dd87d3020dfce2ea0abcad2e57c57a1.zip
Merge "Don't tear down a network unnecessarily." into nyc-mr1-dev
Diffstat (limited to 'src/java/com/android/internal/telephony')
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/DcTracker.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 54305138b..83c5d4b72 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -915,6 +915,17 @@ public class DcTracker extends Handler {
if (apnContext.isConnectedOrConnecting() &&
apnContext.getApnSetting().isMetered(mPhone.getContext(),
mPhone.getSubId(), mPhone.getServiceState().getDataRoaming())) {
+
+ final DcAsyncChannel dataConnectionAc = apnContext.getDcAc();
+ if (dataConnectionAc != null) {
+ final NetworkCapabilities nc =
+ dataConnectionAc.getNetworkCapabilitiesSync();
+ if (nc != null && nc.hasCapability(NetworkCapabilities.
+ NET_CAPABILITY_NOT_RESTRICTED)) {
+ if (DBG) log("not tearing down unrestricted metered net:" + apnContext);
+ continue;
+ }
+ }
if (DBG) log("tearing down restricted metered net: " + apnContext);
apnContext.setReason(Phone.REASON_DATA_ENABLED);
cleanUpConnection(true, apnContext);