summaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/gsm
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2012-08-23 15:53:57 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-23 15:53:57 -0700
commiteca324b92d4cd136f728c14dbb92a1d55674645e (patch)
tree146f1ab5efbc4ce1bb5a58ab2c006ad68dd28c9f /src/java/com/android/internal/telephony/gsm
parent0ef38e23406aeed28e95dbc4e5022822508349e7 (diff)
parentffcb548fa2fdcc170ef4bbbe50f0348959cac8f1 (diff)
downloadframeworks_opt_telephony-eca324b92d4cd136f728c14dbb92a1d55674645e.zip
frameworks_opt_telephony-eca324b92d4cd136f728c14dbb92a1d55674645e.tar.gz
frameworks_opt_telephony-eca324b92d4cd136f728c14dbb92a1d55674645e.tar.bz2
am ffcb548f: Empty DC\'s apnList when the DC is free.
* commit 'ffcb548fa2fdcc170ef4bbbe50f0348959cac8f1': Empty DC's apnList when the DC is free.
Diffstat (limited to 'src/java/com/android/internal/telephony/gsm')
-rw-r--r--src/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/src/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index bcc2908..3606224 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -1009,9 +1009,23 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
}
private boolean dataConnectionNotInUse(DataConnectionAc dcac) {
+ if (DBG) log("dataConnectionNotInUse: check if dcac is inuse dc=" + dcac.dataConnection);
for (ApnContext apnContext : mApnContexts.values()) {
- if (apnContext.getDataConnectionAc() == dcac) return false;
+ if (apnContext.getDataConnectionAc() == dcac) {
+ if (DBG) log("dataConnectionNotInUse: in use by apnContext=" + apnContext);
+ return false;
+ }
+ }
+ // TODO: Fix retry handling so free DataConnections have empty apnlists.
+ // Probably move retry handling into DataConnections and reduce complexity
+ // of DCT.
+ for (ApnContext apnContext : dcac.getApnListSync()) {
+ if (DBG) {
+ log("dataConnectionNotInUse: removing apnContext=" + apnContext);
+ }
+ dcac.removeApnContextSync(apnContext);
}
+ if (DBG) log("dataConnectionNotInUse: not in use return true");
return true;
}
@@ -2175,14 +2189,14 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
protected void onDisconnectDone(int connId, AsyncResult ar) {
ApnContext apnContext = null;
- if(DBG) log("onDisconnectDone: EVENT_DISCONNECT_DONE connId=" + connId);
if (ar.userObj instanceof ApnContext) {
apnContext = (ApnContext) ar.userObj;
} else {
- loge("Invalid ar in onDisconnectDone");
+ loge("onDisconnectDone: Invalid ar in onDisconnectDone, ignore");
return;
}
+ if(DBG) log("onDisconnectDone: EVENT_DISCONNECT_DONE apnContext=" + apnContext);
apnContext.setState(DctConstants.State.IDLE);
mPhone.notifyDataConnection(apnContext.getReason(), apnContext.getApnType());