Merge change 24588 into eclair

* changes:
  Fix for multi-apn MMS access.
This commit is contained in:
Android (Google) Code Review
2009-09-10 21:10:58 -04:00
3 changed files with 13 additions and 17 deletions

View File

@@ -145,12 +145,14 @@ public class MobileDataStateTracker extends NetworkStateTracker {
if (DBG) Log.d(TAG, mApnType + " Received " + intent.getAction() + if (DBG) Log.d(TAG, mApnType + " Received " + intent.getAction() +
" broadcast - state = " + state + ", oldstate = " + mMobileDataState + " broadcast - state = " + state + ", oldstate = " + mMobileDataState +
", unavailable = " + unavailable + ", reason = " + ", unavailable = " + unavailable + ", reason = " +
(reason == null ? "(unspecified)" : reason)); (reason == null ? "(unspecified)" : reason) +
", apnTypeList = " + apnTypeList);
// set this regardless of the apnTypeList. It's all the same radio/network
// underneath
mNetworkInfo.setIsAvailable(!unavailable);
if (isApnTypeIncluded(apnTypeList)) { if (isApnTypeIncluded(apnTypeList)) {
// set this even if the apn isn't Enabled
mNetworkInfo.setIsAvailable(!unavailable);
if (mEnabled == false) { if (mEnabled == false) {
// if we're not enabled but the APN Type is supported by this connection // if we're not enabled but the APN Type is supported by this connection
// we should record the interface name if one's provided. If the user // we should record the interface name if one's provided. If the user

View File

@@ -131,7 +131,7 @@ public class NetworkInfo implements Parcelable {
mSubtypeName = subtypeName; mSubtypeName = subtypeName;
setDetailedState(DetailedState.IDLE, null, null); setDetailedState(DetailedState.IDLE, null, null);
mState = State.UNKNOWN; mState = State.UNKNOWN;
mIsAvailable = true; mIsAvailable = false; // until we're told otherwise, assume unavailable
mIsRoaming = false; mIsRoaming = false;
} }

View File

@@ -640,20 +640,14 @@ public class ConnectivityService extends IConnectivityManager.Stub {
return false; return false;
} }
NetworkStateTracker tracker = mNetTrackers[networkType]; NetworkStateTracker tracker = mNetTrackers[networkType];
/*
* If there's only one connected network, and it's the one requested, if (!tracker.getNetworkInfo().isConnected() || tracker.isTeardownRequested()) {
* then we don't have to do anything - the requested route already if (DBG) {
* exists. If it's not the requested network, then it's not possible Log.d(TAG, "requestRouteToHost on down network (" + networkType + " - dropped");
* to establish the requested route. Finally, if there is more than }
* one connected network, then we must insert an entry in the routing return false;
* table.
*/
if (getNumConnectedNetworks() > 1) {
return tracker.requestRouteToHost(hostAddress);
} else {
return (mNetAttributes[networkType].isDefault() &&
tracker.getNetworkInfo().isConnected());
} }
return tracker.requestRouteToHost(hostAddress);
} }
/** /**