* commit 'e5a28d34f662c469f85590dda28fc02eca12204b': Handle provisioning APN by turning off/on radio.
This commit is contained in:
@ -4152,7 +4152,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
mIsProvisioningNetwork.set(true);
|
mIsProvisioningNetwork.set(true);
|
||||||
MobileDataStateTracker mdst = (MobileDataStateTracker)
|
MobileDataStateTracker mdst = (MobileDataStateTracker)
|
||||||
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
|
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
|
||||||
mdst.setInternalDataEnable(false);
|
|
||||||
|
// Disable radio until user starts provisioning
|
||||||
|
mdst.setRadio(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");
|
||||||
}
|
}
|
||||||
@ -4658,17 +4660,24 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
// 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,
|
// Check airplane mode
|
||||||
|
boolean isAirplaneModeOn = Settings.System.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
|
||||||
|
// If provisioning network and not in airplane mode handle as a special case,
|
||||||
// otherwise launch browser with the intent directly.
|
// otherwise launch browser with the intent directly.
|
||||||
if (mIsProvisioningNetwork.get()) {
|
if (mIsProvisioningNetwork.get() && !isAirplaneModeOn) {
|
||||||
if (DBG) log("handleMobileProvisioningAction: on prov network enable then launch");
|
if (DBG) log("handleMobileProvisioningAction: on prov network enable then launch");
|
||||||
|
mIsProvisioningNetwork.set(false);
|
||||||
mIsStartingProvisioning.set(true);
|
mIsStartingProvisioning.set(true);
|
||||||
MobileDataStateTracker mdst = (MobileDataStateTracker)
|
MobileDataStateTracker mdst = (MobileDataStateTracker)
|
||||||
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
|
mNetTrackers[ConnectivityManager.TYPE_MOBILE];
|
||||||
|
// Radio was disabled on CMP_RESULT_CODE_PROVISIONING_NETWORK, enable it here
|
||||||
|
mdst.setRadio(true);
|
||||||
mdst.setEnableFailFastMobileData(DctConstants.ENABLED);
|
mdst.setEnableFailFastMobileData(DctConstants.ENABLED);
|
||||||
mdst.enableMobileProvisioning(url);
|
mdst.enableMobileProvisioning(url);
|
||||||
} else {
|
} else {
|
||||||
if (DBG) log("handleMobileProvisioningAction: not prov network, launch browser directly");
|
if (DBG) log("handleMobileProvisioningAction: not prov network, launch browser directly");
|
||||||
|
mIsProvisioningNetwork.set(false);
|
||||||
Intent newIntent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
|
Intent newIntent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
|
||||||
Intent.CATEGORY_APP_BROWSER);
|
Intent.CATEGORY_APP_BROWSER);
|
||||||
newIntent.setData(Uri.parse(url));
|
newIntent.setData(Uri.parse(url));
|
||||||
|
Reference in New Issue
Block a user