Skip to content

Commit

Permalink
Empty DC's apnList when the DC is free.
Browse files Browse the repository at this point in the history
Not doing this causes DC.apnList's to have multiple entries in the
apnlist which causes DC's to look like its connected to both IMS and
INTERNET. And when selecting CDMA only mode on a Xoom we will not bring
up the connection thus no data connectivity.

Bug: 6939338
Change-Id: I17bc17cd1938ebac773db8131d12d0fa724348b0
  • Loading branch information
Wink Saville committed Aug 22, 2012
1 parent a18cfcc commit b44b13a
Showing 1 changed file with 17 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -996,9 +996,23 @@ private ArrayList<ApnSetting> createApnList(Cursor cursor) {
}

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;
}

Expand Down Expand Up @@ -2131,14 +2145,14 @@ protected void onDataSetupComplete(AsyncResult ar) {
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(State.IDLE);

mPhone.notifyDataConnection(apnContext.getReason(), apnContext.getApnType());
Expand Down

0 comments on commit b44b13a

Please sign in to comment.