Merge "Be careful sharing connections when dun is in play" into ics-mr1
This commit is contained in:
committed by
Android (Google) Code Review
commit
2a7b5ab16a
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user