aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com')
-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);