am ab18206e: Merge change Ifc9dd5c6 into eclair

Merge commit 'ab18206e209e1ef019c2837856ff53c635d3032f' into eclair-plus-aosp

* commit 'ab18206e209e1ef019c2837856ff53c635d3032f':
  Fix the reporting of ActiveApnTypes on CDMA
This commit is contained in:
Robert Greenwalt
2009-09-29 13:32:21 -07:00
committed by Android Git Automerger
2 changed files with 27 additions and 13 deletions

View File

@@ -76,6 +76,9 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
/** Currently active CdmaDataConnection */
private CdmaDataConnection mActiveDataConnection;
/** mimic of GSM's mActiveApn */
private boolean mIsApnActive = false;
private boolean mPendingRestartRadio = false;
private static final int TIME_DELAYED_TO_RESTART_RADIO =
SystemProperties.getInt("ro.cdma.timetoradiorestart", 20000);
@@ -245,8 +248,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
@Override
protected boolean isApnTypeActive(String type) {
return (isApnTypeAvailable(type) &&
(state != State.IDLE));
return (mIsApnActive && isApnTypeAvailable(type));
}
@Override
@@ -260,10 +262,15 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
}
protected String[] getActiveApnTypes() {
if (state != State.IDLE) {
return mSupportedApnTypes.clone();
String[] result;
if (mIsApnActive) {
result = mSupportedApnTypes.clone();
} else {
// TODO - should this return an empty array? See GSM too.
result = new String[1];
result[0] = Phone.APN_TYPE_DEFAULT;
}
return new String[0];
return result;
}
protected String getActiveApnString() {
@@ -386,6 +393,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
if (!tearDown) {
setState(State.IDLE);
phone.notifyDataConnection(reason);
mIsApnActive = false;
}
}
@@ -409,6 +417,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
}
mActiveDataConnection = conn;
mIsApnActive = true;
Message msg = obtainMessage();
msg.what = EVENT_DATA_SETUP_COMPLETE;
@@ -742,6 +751,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
}
phone.notifyDataConnection(reason);
mIsApnActive = false;
if (retryAfterDisconnected(reason)) {
trySetupData(reason);
}

View File

@@ -596,32 +596,36 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
}
protected String getInterfaceName(String apnType) {
if (mActivePdp != null
&& (apnType == null || mActiveApn.canHandleType(apnType))) {
if (mActivePdp != null &&
(apnType == null ||
(mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getInterface();
}
return null;
}
protected String getIpAddress(String apnType) {
if (mActivePdp != null
&& (apnType == null || mActiveApn.canHandleType(apnType))) {
if (mActivePdp != null &&
(apnType == null ||
(mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getIpAddress();
}
return null;
}
public String getGateway(String apnType) {
if (mActivePdp != null
&& (apnType == null || mActiveApn.canHandleType(apnType))) {
if (mActivePdp != null &&
(apnType == null ||
(mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getGatewayAddress();
}
return null;
}
protected String[] getDnsServers(String apnType) {
if (mActivePdp != null
&& (apnType == null || mActiveApn.canHandleType(apnType))) {
if (mActivePdp != null &&
(apnType == null ||
(mActiveApn != null && mActiveApn.canHandleType(apnType)))) {
return mActivePdp.getDnsServers();
}
return null;