diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2016-08-25 20:51:18 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-08-25 20:51:18 +0000 |
commit | 9c1c0e035dd87d3020dfce2ea0abcad2e57c57a1 (patch) | |
tree | f7ec4a5efc94f95fb4af0de72f0bb3f3fd778b0d /src | |
parent | 9dab89f2ed6958a6d97b7b330f3842ea03674ecf (diff) | |
parent | 76c5a9479d312139740dcaf7644172f2beb2f7e0 (diff) | |
download | android_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')
-rw-r--r-- | src/java/com/android/internal/telephony/dataconnection/DcTracker.java | 11 |
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); |