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);