resolved conflicts for merge of 0bff77d6 to master
Change-Id: Ia4c86126079740978658a05579b56d59d41a7b01
This commit is contained in:
@@ -4041,6 +4041,14 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
*/
|
||||
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);
|
||||
|
||||
@Override
|
||||
@@ -4111,11 +4119,25 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
setProvNotificationVisible(true,
|
||||
ConnectivityManager.TYPE_MOBILE_HIPRI, ni.getExtraInfo(),
|
||||
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 {
|
||||
if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), no url");
|
||||
}
|
||||
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: {
|
||||
loge("CheckMp.onComplete: ignore unexpected result=" + result);
|
||||
break;
|
||||
@@ -4265,6 +4287,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
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,
|
||||
// if so we don't need to do anything active.
|
||||
MobileDataStateTracker mdstDefault = (MobileDataStateTracker)
|
||||
@@ -4602,19 +4630,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
};
|
||||
|
||||
private void handleMobileProvisioningAction(String url) {
|
||||
// Notication mark notification as not visible
|
||||
// Mark notification as not visible
|
||||
setProvNotificationVisible(false, ConnectivityManager.TYPE_MOBILE_HIPRI, null, null);
|
||||
|
||||
// If provisioning network handle as a special case,
|
||||
// otherwise launch browser with the intent directly.
|
||||
NetworkInfo ni = getProvisioningNetworkInfo();
|
||||
if ((ni != null) && ni.isConnectedToProvisioningNetwork()) {
|
||||
if (DBG) log("handleMobileProvisioningAction: on provisioning network");
|
||||
if (mIsProvisioningNetwork.get()) {
|
||||
if (DBG) log("handleMobileProvisioningAction: on prov network enable then launch");
|
||||
mIsStartingProvisioning.set(true);
|
||||
MobileDataStateTracker mdst = (MobileDataStateTracker)
|
||||
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
|
||||
mdst.setEnableFailFastMobileData(DctConstants.ENABLED);
|
||||
mdst.enableMobileProvisioning(url);
|
||||
} else {
|
||||
if (DBG) log("handleMobileProvisioningAction: on default network");
|
||||
if (DBG) log("handleMobileProvisioningAction: not prov network");
|
||||
// Check for apps that can handle provisioning first
|
||||
Intent provisioningIntent = new Intent(TelephonyIntents.ACTION_CARRIER_SETUP);
|
||||
provisioningIntent.addCategory(TelephonyIntents.CATEGORY_MCCMNC_PREFIX
|
||||
|
||||
Reference in New Issue
Block a user