diff options
author | cretin45 <cretin45@gmail.com> | 2014-10-29 13:22:05 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2014-10-30 17:12:08 +0000 |
commit | d52fec7dca1a2aa7db8086b103fe1e890ce0ca94 (patch) | |
tree | 7b2d566e222f8c802f87f6741c78778534c6c043 | |
parent | 044d433e1ee0b83cf8a4647d9eb6f045c76f4054 (diff) | |
download | android_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.java | 20 |
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; |