am 59a9884b: Merge "Do not change NetworkInfo.DetailedState." into jb-mr2-dev

* commit '59a9884bf8280e2db9db7680370e98f40a065d56':
  Do not change NetworkInfo.DetailedState.
This commit is contained in:
Wink Saville
2013-09-06 09:12:50 -07:00
committed by Android Git Automerger
3 changed files with 40 additions and 18 deletions

View File

@ -190,6 +190,8 @@ public class MobileDataStateTracker implements NetworkStateTracker {
private class MobileDataStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Assume this isn't a provisioning network.
mNetworkInfo.setIsConnectedToProvisioningNetwork(false);
if (intent.getAction().equals(TelephonyIntents.
ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN)) {
String apnName = intent.getStringExtra(PhoneConstants.DATA_APN_KEY);
@ -205,7 +207,11 @@ public class MobileDataStateTracker implements NetworkStateTracker {
// Make us in the connecting state until we make a new TYPE_MOBILE_PROVISIONING
mMobileDataState = PhoneConstants.DataState.CONNECTING;
updateLinkProperitesAndCapatilities(intent);
setDetailedState(DetailedState.CONNECTED_TO_PROVISIONING_NETWORK, "", apnName);
mNetworkInfo.setIsConnectedToProvisioningNetwork(true);
// Change state to SUSPENDED so setDetailedState
// sends EVENT_STATE_CHANGED to connectivityService
setDetailedState(DetailedState.SUSPENDED, "", apnName);
} else if (intent.getAction().equals(TelephonyIntents.
ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
String apnType = intent.getStringExtra(PhoneConstants.DATA_APN_TYPE_KEY);

View File

@ -83,13 +83,7 @@ public class NetworkInfo implements Parcelable {
/** Link has poor connectivity. */
VERIFYING_POOR_LINK,
/** Checking if network is a captive portal */
CAPTIVE_PORTAL_CHECK,
/**
* Network is connected to provisioning network
* TODO: Probably not needed when we add TYPE_PROVISIONING_NETWORK
* @hide
*/
CONNECTED_TO_PROVISIONING_NETWORK
CAPTIVE_PORTAL_CHECK
}
/**
@ -114,7 +108,6 @@ public class NetworkInfo implements Parcelable {
stateMap.put(DetailedState.DISCONNECTED, State.DISCONNECTED);
stateMap.put(DetailedState.FAILED, State.DISCONNECTED);
stateMap.put(DetailedState.BLOCKED, State.DISCONNECTED);
stateMap.put(DetailedState.CONNECTED_TO_PROVISIONING_NETWORK, State.CONNECTED);
}
private int mNetworkType;
@ -127,6 +120,8 @@ public class NetworkInfo implements Parcelable {
private String mExtraInfo;
private boolean mIsFailover;
private boolean mIsRoaming;
private boolean mIsConnectedToProvisioningNetwork;
/**
* Indicates whether network connectivity is possible:
*/
@ -155,6 +150,7 @@ public class NetworkInfo implements Parcelable {
mState = State.UNKNOWN;
mIsAvailable = false; // until we're told otherwise, assume unavailable
mIsRoaming = false;
mIsConnectedToProvisioningNetwork = false;
}
/** {@hide} */
@ -171,6 +167,7 @@ public class NetworkInfo implements Parcelable {
mIsFailover = source.mIsFailover;
mIsRoaming = source.mIsRoaming;
mIsAvailable = source.mIsAvailable;
mIsConnectedToProvisioningNetwork = source.mIsConnectedToProvisioningNetwork;
}
}
@ -329,6 +326,22 @@ public class NetworkInfo implements Parcelable {
}
}
/** {@hide} */
@VisibleForTesting
public boolean isConnectedToProvisioningNetwork() {
synchronized (this) {
return mIsConnectedToProvisioningNetwork;
}
}
/** {@hide} */
@VisibleForTesting
public void setIsConnectedToProvisioningNetwork(boolean val) {
synchronized (this) {
mIsConnectedToProvisioningNetwork = val;
}
}
/**
* Reports the current coarse-grained state of the network.
* @return the coarse-grained state
@ -412,7 +425,9 @@ public class NetworkInfo implements Parcelable {
append(", extra: ").append(mExtraInfo == null ? "(none)" : mExtraInfo).
append(", roaming: ").append(mIsRoaming).
append(", failover: ").append(mIsFailover).
append(", isAvailable: ").append(mIsAvailable);
append(", isAvailable: ").append(mIsAvailable).
append(", isConnectedToProvisioningNetwork: ").
append(mIsConnectedToProvisioningNetwork);
return builder.toString();
}
}
@ -440,6 +455,7 @@ public class NetworkInfo implements Parcelable {
dest.writeInt(mIsFailover ? 1 : 0);
dest.writeInt(mIsAvailable ? 1 : 0);
dest.writeInt(mIsRoaming ? 1 : 0);
dest.writeInt(mIsConnectedToProvisioningNetwork ? 1 : 0);
dest.writeString(mReason);
dest.writeString(mExtraInfo);
}
@ -462,6 +478,7 @@ public class NetworkInfo implements Parcelable {
netInfo.mIsFailover = in.readInt() != 0;
netInfo.mIsAvailable = in.readInt() != 0;
netInfo.mIsRoaming = in.readInt() != 0;
netInfo.mIsConnectedToProvisioningNetwork = in.readInt() != 0;
netInfo.mReason = in.readString();
netInfo.mExtraInfo = in.readString();
return netInfo;

View File

@ -890,8 +890,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
// Find the first Provisioning Network
NetworkInfo provNi = null;
for (NetworkInfo ni : getAllNetworkInfo()) {
if (ni.getDetailedState()
== NetworkInfo.DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
if (ni.isConnectedToProvisioningNetwork()) {
provNi = ni;
break;
}
@ -2805,7 +2804,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
NetworkInfo.State state = info.getState();
if (VDBG || (state == NetworkInfo.State.CONNECTED) ||
(state == NetworkInfo.State.DISCONNECTED)) {
(state == NetworkInfo.State.DISCONNECTED) ||
(state == NetworkInfo.State.SUSPENDED)) {
log("ConnectivityChange for " +
info.getTypeName() + ": " +
state + "/" + info.getDetailedState());
@ -2820,7 +2820,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
if (ConnectivityManager.isNetworkTypeMobile(info.getType())
&& (0 != Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 0))
&& (state == NetworkInfo.State.CONNECTED)) {
&& ((state == NetworkInfo.State.CONNECTED)
|| info.isConnectedToProvisioningNetwork())) {
checkMobileProvisioning(CheckMp.MAX_TIMEOUT_MS);
}
@ -2833,8 +2834,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} else if (info.getDetailedState() ==
DetailedState.CAPTIVE_PORTAL_CHECK) {
handleCaptivePortalTrackerCheck(info);
} else if (info.getDetailedState() ==
DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
} else if (info.isConnectedToProvisioningNetwork()) {
/**
* TODO: Create ConnectivityManager.TYPE_MOBILE_PROVISIONING
* for now its an in between network, its a network that
@ -4197,8 +4197,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
// If provisioning network handle as a special case,
// otherwise launch browser with the intent directly.
NetworkInfo ni = getProvisioningNetworkInfo();
if ((ni != null) && ni.getDetailedState() ==
NetworkInfo.DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
if ((ni != null) && ni.isConnectedToProvisioningNetwork()) {
if (DBG) log("handleMobileProvisioningAction: on provisioning network");
MobileDataStateTracker mdst = (MobileDataStateTracker)
mNetTrackers[ConnectivityManager.TYPE_MOBILE];