diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2016-08-22 19:40:02 -0700 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2016-08-22 19:40:02 -0700 |
commit | 76c5a9479d312139740dcaf7644172f2beb2f7e0 (patch) | |
tree | 62519b0f50737e6f4e19f7c3a84ba051eab554af /src | |
parent | 68d7118dd596c2459c6af3eb531654aafa9fe602 (diff) | |
download | android_frameworks_opt_telephony-76c5a9479d312139740dcaf7644172f2beb2f7e0.tar.gz android_frameworks_opt_telephony-76c5a9479d312139740dcaf7644172f2beb2f7e0.tar.bz2 android_frameworks_opt_telephony-76c5a9479d312139740dcaf7644172f2beb2f7e0.zip |
Don't tear down a network unnecessarily.
If conditions ease so restricted networks are now allowed don't
just assume every up network needs to be torn down. Instead
check and see if it's marked restricted (or not, not-restricted)
first.
bug:30490689
Change-Id: Ib19d45979f6f9e0b605a3e5b39f569a01d30d42b
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 11e8cc14e..2b4b39b2e 100644 --- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java +++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java @@ -909,6 +909,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); |