diff options
| author | 2014-06-09 19:46:01 +0000 | |
|---|---|---|
| committer | 2014-06-09 19:46:01 +0000 | |
| commit | e5a28d34f662c469f85590dda28fc02eca12204b (patch) | |
| tree | b61d2d184e68ccb7611a763c782aeb8e0f662ebf | |
| parent | 5cb180541332d652ed661559dfaa55a0fcc3751b (diff) | |
| parent | 20c5ce50c456742bf912ebb915be45bfdb51487d (diff) | |
am 20c5ce50: Handle provisioning APN by turning off/on radio.
* commit '20c5ce50c456742bf912ebb915be45bfdb51487d':
Handle provisioning APN by turning off/on radio.
| -rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 41a0e6b9a61d..3872674a5044 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -4145,7 +4145,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { mIsProvisioningNetwork.set(true); MobileDataStateTracker mdst = (MobileDataStateTracker) mNetTrackers[ConnectivityManager.TYPE_MOBILE]; - mdst.setInternalDataEnable(false); + + // Disable radio until user starts provisioning + mdst.setRadio(false); } else { if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), no url"); } @@ -4651,17 +4653,24 @@ public class ConnectivityService extends IConnectivityManager.Stub { // Mark notification as not visible 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. - if (mIsProvisioningNetwork.get()) { + if (mIsProvisioningNetwork.get() && !isAirplaneModeOn) { if (DBG) log("handleMobileProvisioningAction: on prov network enable then launch"); + mIsProvisioningNetwork.set(false); mIsStartingProvisioning.set(true); MobileDataStateTracker mdst = (MobileDataStateTracker) mNetTrackers[ConnectivityManager.TYPE_MOBILE]; + // Radio was disabled on CMP_RESULT_CODE_PROVISIONING_NETWORK, enable it here + mdst.setRadio(true); mdst.setEnableFailFastMobileData(DctConstants.ENABLED); mdst.enableMobileProvisioning(url); } else { if (DBG) log("handleMobileProvisioningAction: not prov network, launch browser directly"); + mIsProvisioningNetwork.set(false); Intent newIntent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER); newIntent.setData(Uri.parse(url)); |