aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-08-03 23:04:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-08-03 23:04:51 +0000
commite513467a7388ce80322c87a6636d4a2568aae87f (patch)
tree1b2f7bd69f66755a12f1df01791d8d9160bf03ab
parent915dfa42441f8133587ff1ee3da7a3aff7a24d0e (diff)
parentb5072c6da24adbc4bef8f26e061aee985a014086 (diff)
downloadtelephony-e513467a7388ce80322c87a6636d4a2568aae87f.tar.gz
Merge "Fixed the aggresive data call setup" into oc-dr1-dev
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/DcTracker.java18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index ac55fa5a9f..6daff833cc 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -3760,6 +3760,14 @@ public class DcTracker extends Handler {
break;
case DctConstants.EVENT_DATA_RAT_CHANGED:
+ if (mPhone.getServiceState().getRilDataRadioTechnology()
+ == ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN) {
+ // unknown rat is an exception for data rat change. It's only received when out
+ // of service and is not applicable for apn bearer bitmask. We should bypass the
+ // check of waiting apn list and keep the data connection on, and no need to
+ // setup a new one.
+ break;
+ }
cleanUpConnectionsOnUpdatedApns(false, Phone.REASON_NW_TYPE_CHANGED);
//May new Network allow setupData, so try it here
setupDataOnConnectableApns(Phone.REASON_NW_TYPE_CHANGED,
@@ -4384,17 +4392,11 @@ public class DcTracker extends Handler {
if (mAllApnSettings != null && mAllApnSettings.isEmpty()) {
cleanUpAllConnections(tearDown, Phone.REASON_APN_CHANGED);
} else {
- int radioTech = mPhone.getServiceState().getRilDataRadioTechnology();
- if (radioTech == ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN) {
- // unknown rat is an exception for data rat change. Its only received when out of
- // service and is not applicable for apn bearer bitmask. We should bypass the check
- // of waiting apn list and keep the data connection on.
- return;
- }
for (ApnContext apnContext : mApnContexts.values()) {
ArrayList<ApnSetting> currentWaitingApns = apnContext.getWaitingApns();
ArrayList<ApnSetting> waitingApns = buildWaitingApns(
- apnContext.getApnType(), radioTech);
+ apnContext.getApnType(),
+ mPhone.getServiceState().getRilDataRadioTechnology());
if (VDBG) log("new waitingApns:" + waitingApns);
if ((currentWaitingApns != null)
&& ((waitingApns.size() != currentWaitingApns.size())