diff options
| author | 2011-07-08 17:52:56 -0700 | |
|---|---|---|
| committer | 2011-07-08 17:52:56 -0700 | |
| commit | e2dece12ba4e9a0ea71135ea4e1d4bf1fc3ea125 (patch) | |
| tree | fab0586fb1b9fdc53f6be23b6b8999d5bc57fb5d | |
| parent | 0d171a66a4e14fad006e6dc8bd82d58c2e331d3d (diff) | |
| parent | 3ef341cda51d5bc35b0bc919f7514653ec194410 (diff) | |
am 3ef341cd: am 7283bb93: Merge "Disconnect ApnContexts in INITING state when error." into honeycomb-LTE
* commit '3ef341cda51d5bc35b0bc919f7514653ec194410':
Disconnect ApnContexts in INITING state when error.
| -rw-r--r-- | telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index fe57d0dc1595..df5898bc0cb7 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -1055,10 +1055,16 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } } if (!found) { - // ApnContext does not have dcan reorted in data call list. + // ApnContext does not have dcac reported in data call list. + // Fetch all the ApnContexts that map to this dcac which are in + // INITING state too. if (DBG) log("onDataStateChanged(ar): Connected apn not found in the list (" + apnContext.toString() + ")"); - list.add(apnContext); + if (apnContext.getDataConnectionAc() != null) { + list.addAll(apnContext.getDataConnectionAc().getApnListSync()); + } else { + list.add(apnContext); + } } } } @@ -1110,10 +1116,12 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { Collection<ApnContext> apns = dcac.getApnListSync(); - // filter out ApnContext with "Connected" state. + // filter out ApnContext with "Connected/Connecting" state. ArrayList<ApnContext> connectedApns = new ArrayList<ApnContext>(); for (ApnContext apnContext : apns) { - if (apnContext.getState() == State.CONNECTED) { + if (apnContext.getState() == State.CONNECTED || + apnContext.getState() == State.CONNECTING || + apnContext.getState() == State.INITING) { connectedApns.add(apnContext); } } |