From 5e0983ba3e96083da094d9706beadacce6b4e9c9 Mon Sep 17 00:00:00 2001 From: Richard Ross Date: Tue, 11 Jun 2013 23:06:18 -0400 Subject: PhoneProxy: when using v6 or greater ril make sure current phone type isnt GSM This fixes an issue with CDMA + LTE devices that are able to utilize GSM netowrks. When using v6 or greater ril and connected to a GSM network it routes you through the CDMA stack. This causes all sorts of issues. Fix by making sure that phone type isnt GSM. a revert of f0ddc6a7318b74608c58beca61901820ea7d9a7d 97cabb4543823fd989f4aa371fca41b1aeb07278 a34c63e1842f018f7d318ba7887ec2500c07658c Change-Id: I4c9fc73e18ebee0df43e69ac982b61904d11333b --- src/java/com/android/internal/telephony/PhoneProxy.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/java/com/android/internal/telephony/PhoneProxy.java b/src/java/com/android/internal/telephony/PhoneProxy.java index 38fe68d5d..a1a8d880d 100644 --- a/src/java/com/android/internal/telephony/PhoneProxy.java +++ b/src/java/com/android/internal/telephony/PhoneProxy.java @@ -31,6 +31,7 @@ import android.telephony.CellInfo; import android.telephony.CellLocation; import android.telephony.ServiceState; import android.telephony.SignalStrength; +import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.telephony.cdma.CDMAPhone; @@ -55,8 +56,6 @@ public class PhoneProxy extends Handler implements Phone { private boolean mResetModemOnRadioTechnologyChange = false; private int mRilVersion; - private boolean mRilV7NeedsCDMALTEPhone = SystemProperties.getBoolean( - "telephony.rilV7NeedCDMALTEPhone", false); private static final int EVENT_VOICE_RADIO_TECH_CHANGED = 1; private static final int EVENT_RADIO_ON = 2; @@ -148,10 +147,10 @@ public class PhoneProxy extends Handler implements Phone { private void updatePhoneObject(int newVoiceRadioTech) { if (mActivePhone != null) { - if((mRilVersion == 6 && getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) || - mRilV7NeedsCDMALTEPhone) { + int phoneType = TelephonyManager.getPhoneType(TelephonyManager.getDefault().getNetworkType()); + if(mRilVersion >= 6 && getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE && phoneType != PhoneConstants.PHONE_TYPE_GSM) { /* - * On v6 RIL, when LTE_ON_CDMA is TRUE, always create CDMALTEPhone + * On v6 RIL or greater, when LTE_ON_CDMA is TRUE, always create CDMALTEPhone * irrespective of the voice radio tech reported. */ if (mActivePhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) { -- cgit v1.2.3