Loading core/java/android/net/MobileDataStateTracker.java +7 −1 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading core/java/android/net/NetworkInfo.java +26 −9 Original line number Diff line number Diff line Loading @@ -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 } /** Loading @@ -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; Loading @@ -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: */ Loading Loading @@ -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} */ Loading @@ -171,6 +167,7 @@ public class NetworkInfo implements Parcelable { mIsFailover = source.mIsFailover; mIsRoaming = source.mIsRoaming; mIsAvailable = source.mIsAvailable; mIsConnectedToProvisioningNetwork = source.mIsConnectedToProvisioningNetwork; } } Loading Loading @@ -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 Loading Loading @@ -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(); } } Loading Loading @@ -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); } Loading @@ -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; Loading services/java/com/android/server/ConnectivityService.java +7 −8 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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()); Loading @@ -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); } Loading @@ -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 Loading Loading @@ -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]; Loading Loading
core/java/android/net/MobileDataStateTracker.java +7 −1 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading
core/java/android/net/NetworkInfo.java +26 −9 Original line number Diff line number Diff line Loading @@ -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 } /** Loading @@ -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; Loading @@ -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: */ Loading Loading @@ -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} */ Loading @@ -171,6 +167,7 @@ public class NetworkInfo implements Parcelable { mIsFailover = source.mIsFailover; mIsRoaming = source.mIsRoaming; mIsAvailable = source.mIsAvailable; mIsConnectedToProvisioningNetwork = source.mIsConnectedToProvisioningNetwork; } } Loading Loading @@ -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 Loading Loading @@ -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(); } } Loading Loading @@ -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); } Loading @@ -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; Loading
services/java/com/android/server/ConnectivityService.java +7 −8 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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()); Loading @@ -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); } Loading @@ -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 Loading Loading @@ -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]; Loading