Loading src/java/com/android/internal/telephony/dataconnection/ApnContext.java +6 −1 Original line number Diff line number Diff line Loading @@ -450,9 +450,14 @@ public class ApnContext { } } public boolean hasNoRestrictedRequests() { public boolean hasNoRestrictedRequests(boolean excludeDun) { synchronized (mRefCountLock) { for (NetworkRequest nr : mNetworkRequests) { if (excludeDun && nr.networkCapabilities.hasCapability( NetworkCapabilities.NET_CAPABILITY_DUN)) { continue; } if (nr.networkCapabilities.hasCapability( NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) == false) { return false; Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +5 −2 Original line number Diff line number Diff line Loading @@ -860,7 +860,7 @@ public class DataConnection extends StateMachine { // first, if we have no restricted requests, this override can stay FALSE: boolean noRestrictedRequests = true; for (ApnContext apnContext : mApnContexts.keySet()) { noRestrictedRequests &= apnContext.hasNoRestrictedRequests(); noRestrictedRequests &= apnContext.hasNoRestrictedRequests(true /* exclude DUN */); } if (noRestrictedRequests) { return; Loading Loading @@ -948,6 +948,8 @@ public class DataConnection extends StateMachine { } if (mRestrictedNetworkOverride) { result.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); // don't use dun on restriction-overriden networks. result.removeCapability(NetworkCapabilities.NET_CAPABILITY_DUN); } int up = 14; Loading Loading @@ -2055,7 +2057,8 @@ public class DataConnection extends StateMachine { + " mLastFailCause=" + mLastFailCause + " mTag=" + mTag + " mLinkProperties=" + mLinkProperties + " linkCapabilities=" + makeNetworkCapabilities(); + " linkCapabilities=" + makeNetworkCapabilities() + " mRestrictedNetworkOverride=" + mRestrictedNetworkOverride; } @Override Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +3 −1 Original line number Diff line number Diff line Loading @@ -1514,10 +1514,12 @@ public class DcTracker extends Handler { // request for the network. // TODO - may want restricted requests to only apply to carrier-limited data access // rather than applying to user limited as well. // Exclude DUN for the purposes of the override until we get finer grained // intention in NetworkRequests boolean checkUserDataEnabled = ApnSetting.isMeteredApnType(apnContext.getApnType(), mPhone.getContext(), mPhone.getSubId(), mPhone.getServiceState().getDataRoaming()) && apnContext.hasNoRestrictedRequests(); apnContext.hasNoRestrictedRequests(true /*exclude DUN */); DataAllowFailReason failureReason = new DataAllowFailReason(); Loading Loading
src/java/com/android/internal/telephony/dataconnection/ApnContext.java +6 −1 Original line number Diff line number Diff line Loading @@ -450,9 +450,14 @@ public class ApnContext { } } public boolean hasNoRestrictedRequests() { public boolean hasNoRestrictedRequests(boolean excludeDun) { synchronized (mRefCountLock) { for (NetworkRequest nr : mNetworkRequests) { if (excludeDun && nr.networkCapabilities.hasCapability( NetworkCapabilities.NET_CAPABILITY_DUN)) { continue; } if (nr.networkCapabilities.hasCapability( NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) == false) { return false; Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +5 −2 Original line number Diff line number Diff line Loading @@ -860,7 +860,7 @@ public class DataConnection extends StateMachine { // first, if we have no restricted requests, this override can stay FALSE: boolean noRestrictedRequests = true; for (ApnContext apnContext : mApnContexts.keySet()) { noRestrictedRequests &= apnContext.hasNoRestrictedRequests(); noRestrictedRequests &= apnContext.hasNoRestrictedRequests(true /* exclude DUN */); } if (noRestrictedRequests) { return; Loading Loading @@ -948,6 +948,8 @@ public class DataConnection extends StateMachine { } if (mRestrictedNetworkOverride) { result.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); // don't use dun on restriction-overriden networks. result.removeCapability(NetworkCapabilities.NET_CAPABILITY_DUN); } int up = 14; Loading Loading @@ -2055,7 +2057,8 @@ public class DataConnection extends StateMachine { + " mLastFailCause=" + mLastFailCause + " mTag=" + mTag + " mLinkProperties=" + mLinkProperties + " linkCapabilities=" + makeNetworkCapabilities(); + " linkCapabilities=" + makeNetworkCapabilities() + " mRestrictedNetworkOverride=" + mRestrictedNetworkOverride; } @Override Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +3 −1 Original line number Diff line number Diff line Loading @@ -1514,10 +1514,12 @@ public class DcTracker extends Handler { // request for the network. // TODO - may want restricted requests to only apply to carrier-limited data access // rather than applying to user limited as well. // Exclude DUN for the purposes of the override until we get finer grained // intention in NetworkRequests boolean checkUserDataEnabled = ApnSetting.isMeteredApnType(apnContext.getApnType(), mPhone.getContext(), mPhone.getSubId(), mPhone.getServiceState().getDataRoaming()) && apnContext.hasNoRestrictedRequests(); apnContext.hasNoRestrictedRequests(true /*exclude DUN */); DataAllowFailReason failureReason = new DataAllowFailReason(); Loading