am 2a7b5ab1: Merge "Be careful sharing connections when dun is in play" into ics-mr1

* commit '2a7b5ab16af697f386ad7ae346e1bf9229086fa8':
  Be careful sharing connections when dun is in play
This commit is contained in:
Robert Greenwalt
2011-12-02 16:54:04 -08:00
committed by Android Git Automerger
2 changed files with 22 additions and 1 deletions

View File

@@ -189,4 +189,11 @@ public class ApnSetting {
}
return false;
}
// TODO - if we have this function we should also have hashCode.
// Also should handle changes in type order and perhaps case-insensitivity
public boolean equals(Object o) {
if (o instanceof ApnSetting == false) return false;
return (this.toString().equals(o.toString()));
}
}

View File

@@ -1720,11 +1720,25 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
private DataConnection checkForConnectionForApnContext(ApnContext apnContext) {
// Loop through all apnContexts looking for one with a conn that satisfies this apnType
String apnType = apnContext.getApnType();
ApnSetting dunSetting = null;
if (Phone.APN_TYPE_DUN.equals(apnType)) {
dunSetting = fetchDunApn();
}
for (ApnContext c : mApnContexts.values()) {
DataConnection conn = c.getDataConnection();
if (conn != null) {
ApnSetting apnSetting = c.getApnSetting();
if (apnSetting != null && apnSetting.canHandleType(apnType)) {
if (dunSetting != null) {
if (dunSetting.equals(apnSetting)) {
if (DBG) {
log("checkForConnectionForApnContext: apnContext=" + apnContext +
" found conn=" + conn);
}
return conn;
}
} else if (apnSetting != null && apnSetting.canHandleType(apnType)) {
if (DBG) {
log("checkForConnectionForApnContext: apnContext=" + apnContext +
" found conn=" + conn);