resolved conflicts for merge of 0bff77d6 to master

Change-Id: Ia4c86126079740978658a05579b56d59d41a7b01
This commit is contained in:
Robert Greenwalt
2014-03-19 12:41:54 -07:00

View File

@@ -4041,6 +4041,14 @@ public class ConnectivityService extends IConnectivityManager.Stub {
*/ */
private static final int CMP_RESULT_CODE_PROVISIONING_NETWORK = 5; private static final int CMP_RESULT_CODE_PROVISIONING_NETWORK = 5;
/**
* The mobile network is provisioning
*/
private static final int CMP_RESULT_CODE_IS_PROVISIONING = 6;
private AtomicBoolean mIsProvisioningNetwork = new AtomicBoolean(false);
private AtomicBoolean mIsStartingProvisioning = new AtomicBoolean(false);
private AtomicBoolean mIsCheckingMobileProvisioning = new AtomicBoolean(false); private AtomicBoolean mIsCheckingMobileProvisioning = new AtomicBoolean(false);
@Override @Override
@@ -4111,11 +4119,25 @@ public class ConnectivityService extends IConnectivityManager.Stub {
setProvNotificationVisible(true, setProvNotificationVisible(true,
ConnectivityManager.TYPE_MOBILE_HIPRI, ni.getExtraInfo(), ConnectivityManager.TYPE_MOBILE_HIPRI, ni.getExtraInfo(),
url); url);
// Mark that we've got a provisioning network and
// Disable Mobile Data until user actually starts provisioning.
mIsProvisioningNetwork.set(true);
MobileDataStateTracker mdst = (MobileDataStateTracker)
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
mdst.setInternalDataEnable(false);
} else { } else {
if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), no url"); if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), no url");
} }
break; break;
} }
case CMP_RESULT_CODE_IS_PROVISIONING: {
// FIXME: Need to know when provisioning is done. Probably we can
// check the completion status if successful we're done if we
// "timedout" or still connected to provisioning APN turn off data?
if (DBG) log("CheckMp.onComplete: provisioning started");
mIsStartingProvisioning.set(false);
break;
}
default: { default: {
loge("CheckMp.onComplete: ignore unexpected result=" + result); loge("CheckMp.onComplete: ignore unexpected result=" + result);
break; break;
@@ -4265,6 +4287,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
return result; return result;
} }
if (mCs.mIsStartingProvisioning.get()) {
result = CMP_RESULT_CODE_IS_PROVISIONING;
log("isMobileOk: X is provisioning result=" + result);
return result;
}
// See if we've already determined we've got a provisioning connection, // See if we've already determined we've got a provisioning connection,
// if so we don't need to do anything active. // if so we don't need to do anything active.
MobileDataStateTracker mdstDefault = (MobileDataStateTracker) MobileDataStateTracker mdstDefault = (MobileDataStateTracker)
@@ -4602,19 +4630,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}; };
private void handleMobileProvisioningAction(String url) { private void handleMobileProvisioningAction(String url) {
// Notication mark notification as not visible // Mark notification as not visible
setProvNotificationVisible(false, ConnectivityManager.TYPE_MOBILE_HIPRI, null, null); setProvNotificationVisible(false, ConnectivityManager.TYPE_MOBILE_HIPRI, null, null);
// If provisioning network handle as a special case, // If provisioning network handle as a special case,
// otherwise launch browser with the intent directly. // otherwise launch browser with the intent directly.
NetworkInfo ni = getProvisioningNetworkInfo(); if (mIsProvisioningNetwork.get()) {
if ((ni != null) && ni.isConnectedToProvisioningNetwork()) { if (DBG) log("handleMobileProvisioningAction: on prov network enable then launch");
if (DBG) log("handleMobileProvisioningAction: on provisioning network"); mIsStartingProvisioning.set(true);
MobileDataStateTracker mdst = (MobileDataStateTracker) MobileDataStateTracker mdst = (MobileDataStateTracker)
mNetTrackers[ConnectivityManager.TYPE_MOBILE]; mNetTrackers[ConnectivityManager.TYPE_MOBILE];
mdst.setEnableFailFastMobileData(DctConstants.ENABLED);
mdst.enableMobileProvisioning(url); mdst.enableMobileProvisioning(url);
} else { } else {
if (DBG) log("handleMobileProvisioningAction: on default network"); if (DBG) log("handleMobileProvisioningAction: not prov network");
// Check for apps that can handle provisioning first // Check for apps that can handle provisioning first
Intent provisioningIntent = new Intent(TelephonyIntents.ACTION_CARRIER_SETUP); Intent provisioningIntent = new Intent(TelephonyIntents.ACTION_CARRIER_SETUP);
provisioningIntent.addCategory(TelephonyIntents.CATEGORY_MCCMNC_PREFIX provisioningIntent.addCategory(TelephonyIntents.CATEGORY_MCCMNC_PREFIX