Telephony: Fix for overriding preferred network settings.
Issue: FP2P-573
Change-Id: Ic17a292178337a685e3e9686affc8688970becbc
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
index 38d700e..2aefe66 100644
--- a/src/com/android/phone/MobileDataPreference.java
+++ b/src/com/android/phone/MobileDataPreference.java
@@ -225,6 +225,24 @@
}
}
+ private void switchLte(int subId) {
+ if (DBG) Log.d(TAG, "activateLte" + subId);
+ int preferredNetworkMode = 0;
+ int NETWORK_GSM =1;
+ int NETWORK_LTE =9;
+ int network_mode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ preferredNetworkMode);
+ if(network_mode == NETWORK_GSM) {
+ if (DBG) Log.d(TAG, "activateLte network_mode = " + network_mode);
+ android.provider.Settings.Global.putInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ NETWORK_LTE);
+ }
+ }
+
@Override
public void onClick(DialogInterface dialog, int which) {
if (which != DialogInterface.BUTTON_POSITIVE) {
@@ -233,6 +251,7 @@
if (mMultiSimDialog) {
mSubscriptionManager.setDefaultDataSubId(mSubId);
setMobileDataEnabled(true);
+ switchLte(mSubId);
disableDataForOtherSubscriptions(mSubId);
} else {
// TODO: extend to modify policy enabled flag.
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 0f9ec9e..b094982 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -318,7 +318,6 @@
private MyHandler mHandler;
private boolean mOkClicked;
private boolean mExpandAdvancedFields;
- private boolean canPreferenceChange;
// We assume the the value returned by mTabHost.getCurrentTab() == slotId
private TabHost mTabHost;
@@ -960,15 +959,6 @@
Phone.NT_MODE_GSM_ONLY);
}
}
- else if(phoneSubId == SubscriptionManager.getDefaultDataSubscriptionId() && !canPreferenceChange){
- if(network_mode == Phone.NT_MODE_GSM_ONLY) {
- android.provider.Settings.Global.putInt(
- context.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- Phone.NT_MODE_LTE_GSM_WCDMA);
- }
- canPreferenceChange = false;
- }
updateBodyBasicFields(activity, prefSet, phoneSubId, hasActiveSubscriptions);
if (mExpandAdvancedFields) {
@@ -1317,7 +1307,6 @@
.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
}
} else if (preference == mButtonEnabledNetworks) {
- canPreferenceChange = true;
mButtonEnabledNetworks.setValue((String) objValue);
int buttonNetworkMode;
buttonNetworkMode = Integer.parseInt((String) objValue);