summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcretin45 <cretin45@gmail.com>2014-10-29 13:22:05 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2014-10-30 17:12:08 +0000
commitd52fec7dca1a2aa7db8086b103fe1e890ce0ca94 (patch)
tree7b2d566e222f8c802f87f6741c78778534c6c043
parent044d433e1ee0b83cf8a4647d9eb6f045c76f4054 (diff)
downloadandroid_packages_services_Telephony-d52fec7dca1a2aa7db8086b103fe1e890ce0ca94.tar.gz
android_packages_services_Telephony-d52fec7dca1a2aa7db8086b103fe1e890ce0ca94.tar.bz2
android_packages_services_Telephony-d52fec7dca1a2aa7db8086b103fe1e890ce0ca94.zip
TeleService: For Msim DSDS, set mode to 2g(all sims) prior to change
* DSDS have a wierd behavior that all sims need to be toggle to 2g before switching to 3g or above. Change-Id: Iccd409ea0811a2a041d0e707da6285ed5d3375cd
-rw-r--r--src/com/android/phone/MobileNetworkSettings.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index cbb8f228e..c4cbb5c26 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -20,6 +20,7 @@ import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyProperties;
+import com.codeaurora.telephony.msim.MSimPhoneFactory;
import android.app.ActionBar;
import android.app.AlertDialog;
@@ -39,6 +40,7 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
+import android.telephony.MSimTelephonyManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
@@ -511,8 +513,7 @@ public class MobileNetworkSettings extends PreferenceActivity
setPreferredNetworkMode(buttonNetworkMode);
//Set the modem network mode
- mPhone.setPreferredNetworkType(modemNetworkMode, mHandler
- .obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+ setPreferredNetworkType(modemNetworkMode);
Intent intent = new Intent(PhoneToggler.ACTION_NETWORK_MODE_CHANGED);
intent.putExtra(PhoneToggler.EXTRA_NETWORK_MODE, buttonNetworkMode);
@@ -524,6 +525,21 @@ public class MobileNetworkSettings extends PreferenceActivity
return true;
}
+ private void setPreferredNetworkType(int modemNetworkMode) {
+ MSimTelephonyManager tm = MSimTelephonyManager.getDefault();
+ if (tm.isMultiSimEnabled() &&
+ tm.getMultiSimConfiguration() ==
+ MSimTelephonyManager.MultiSimVariants.DSDS) {
+ for (int i=0; i<tm.getPhoneCount(); i++) {
+ Phone phone = MSimPhoneFactory.getPhone(i);
+ phone.setPreferredNetworkType(Phone.NT_MODE_GSM_ONLY, mHandler
+ .obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+ }
+ }
+ mPhone.setPreferredNetworkType(modemNetworkMode, mHandler
+ .obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE));
+ }
+
private class MyHandler extends Handler {
static final int MESSAGE_GET_PREFERRED_NETWORK_TYPE = 0;