Guarantee that Enhanced 4G LTE Mode setting is applied.
Possible race condition if IMS Manager not able to be instantiated.
Bug: 17186613
Change-Id: I376d3cb2c2950a0bd72ad804d51767415839ec6d
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 89749ad..05c00fa 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -488,13 +488,14 @@
.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
}
} else if (preference == mButton4glte) {
+ SwitchPreference ltePref = (SwitchPreference)preference;
+ ltePref.setChecked(!ltePref.isChecked());
+ setIMS(ltePref.isChecked());
+
ImsManager imsMan = ImsManager.getInstance(getBaseContext(),
SubscriptionManager.getDefaultVoiceSubId());
- SwitchPreference ltePref = (SwitchPreference)preference;
-
if (imsMan != null) {
- ltePref.setChecked(!ltePref.isChecked());
- setIMS(ltePref.isChecked());
+
try {
imsMan.setAdvanced4GMode(ltePref.isChecked());
} catch (ImsException ie) {