Merge "Add getLteOnCdamMode." into honeycomb-LTE
This commit is contained in:
@@ -30,7 +30,6 @@ import com.android.internal.telephony.ITelephony;
|
|||||||
import com.android.internal.telephony.ITelephonyRegistry;
|
import com.android.internal.telephony.ITelephonyRegistry;
|
||||||
import com.android.internal.telephony.Phone;
|
import com.android.internal.telephony.Phone;
|
||||||
import com.android.internal.telephony.PhoneFactory;
|
import com.android.internal.telephony.PhoneFactory;
|
||||||
import com.android.internal.telephony.RILConstants;
|
|
||||||
import com.android.internal.telephony.TelephonyProperties;
|
import com.android.internal.telephony.TelephonyProperties;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -630,6 +629,28 @@ public class TelephonyManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current radio is LTE on CDMA. This
|
||||||
|
* is a tri-state return value as for a period of time
|
||||||
|
* the mode may be unknown.
|
||||||
|
*
|
||||||
|
* @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
|
||||||
|
* or {@link Phone#LTE_ON_CDMA_TRUE}
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public int getLteOnCdmaMode() {
|
||||||
|
try {
|
||||||
|
return getITelephony().getLteOnCdmaMode();
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
// Assume no ICC card if remote exception which shouldn't happen
|
||||||
|
return Phone.LTE_ON_CDMA_UNKNOWN;
|
||||||
|
} catch (NullPointerException ex) {
|
||||||
|
// This could happen before phone restarts due to crashing
|
||||||
|
return Phone.LTE_ON_CDMA_UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Subscriber Info
|
// Subscriber Info
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import android.os.RegistrantList;
|
|||||||
import android.os.Registrant;
|
import android.os.Registrant;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.AsyncResult;
|
import android.os.AsyncResult;
|
||||||
|
import android.os.SystemProperties;
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -792,4 +793,27 @@ public abstract class BaseCommands implements CommandsInterface {
|
|||||||
|
|
||||||
protected void onRadioAvailable() {
|
protected void onRadioAvailable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLteOnCdmaMode() {
|
||||||
|
return getLteOnCdmaModeStatic();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current radio is LTE on CDMA. This
|
||||||
|
* is a tri-state return value as for a period of time
|
||||||
|
* the mode may be unknown.
|
||||||
|
*
|
||||||
|
* @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
|
||||||
|
* or {@link Phone#LTE_ON_CDMA_TRUE}
|
||||||
|
*/
|
||||||
|
public static int getLteOnCdmaModeStatic() {
|
||||||
|
int retVal = SystemProperties.getInt(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA,
|
||||||
|
Phone.LTE_ON_CDMA_FALSE);
|
||||||
|
Log.d(LOG_TAG, "getLteOnCdmaMode=" + retVal);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ import android.os.SystemProperties;
|
|||||||
* {@hide}
|
* {@hide}
|
||||||
*/
|
*/
|
||||||
public interface CommandsInterface {
|
public interface CommandsInterface {
|
||||||
static final boolean LTE_AVAILABLE_ON_CDMA =
|
|
||||||
SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA, false);
|
|
||||||
enum RadioState {
|
enum RadioState {
|
||||||
RADIO_OFF(0), /* Radio explictly powered off (eg CFUN=0) */
|
RADIO_OFF(0), /* Radio explictly powered off (eg CFUN=0) */
|
||||||
RADIO_UNAVAILABLE(0), /* Radio unavailable (eg, resetting or not booted) */
|
RADIO_UNAVAILABLE(0), /* Radio unavailable (eg, resetting or not booted) */
|
||||||
@@ -79,7 +77,7 @@ public interface CommandsInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGsm() {
|
public boolean isGsm() {
|
||||||
if (LTE_AVAILABLE_ON_CDMA) {
|
if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return this == SIM_NOT_READY
|
return this == SIM_NOT_READY
|
||||||
@@ -89,7 +87,7 @@ public interface CommandsInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCdma() {
|
public boolean isCdma() {
|
||||||
if (LTE_AVAILABLE_ON_CDMA) {
|
if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return this == RUIM_NOT_READY
|
return this == RUIM_NOT_READY
|
||||||
@@ -1572,4 +1570,14 @@ public interface CommandsInterface {
|
|||||||
* Callback message containing {@link IccCardStatus} structure for the card.
|
* Callback message containing {@link IccCardStatus} structure for the card.
|
||||||
*/
|
*/
|
||||||
public void getIccCardStatus(Message result);
|
public void getIccCardStatus(Message result);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current radio is LTE on CDMA. This
|
||||||
|
* is a tri-state return value as for a period of time
|
||||||
|
* the mode may be unknown.
|
||||||
|
*
|
||||||
|
* @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
|
||||||
|
* or {@link Phone#LTE_ON_CDMA_TRUE}
|
||||||
|
*/
|
||||||
|
public int getLteOnCdmaMode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,5 +259,15 @@ interface ITelephony {
|
|||||||
* Return true if an ICC card is present
|
* Return true if an ICC card is present
|
||||||
*/
|
*/
|
||||||
boolean hasIccCard();
|
boolean hasIccCard();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current radio is LTE on CDMA. This
|
||||||
|
* is a tri-state return value as for a period of time
|
||||||
|
* the mode may be unknown.
|
||||||
|
*
|
||||||
|
* @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
|
||||||
|
* or {@link PHone#LTE_ON_CDMA_TRUE}
|
||||||
|
*/
|
||||||
|
int getLteOnCdmaMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,9 +88,6 @@ public abstract class IccCard {
|
|||||||
private static final int EVENT_QUERY_FACILITY_FDN_DONE = 10;
|
private static final int EVENT_QUERY_FACILITY_FDN_DONE = 10;
|
||||||
private static final int EVENT_CHANGE_FACILITY_FDN_DONE = 11;
|
private static final int EVENT_CHANGE_FACILITY_FDN_DONE = 11;
|
||||||
|
|
||||||
static final boolean LTE_AVAILABLE_ON_CDMA =
|
|
||||||
SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA, false);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
UNKNOWN is a transient state, for example, after uesr inputs ICC pin under
|
UNKNOWN is a transient state, for example, after uesr inputs ICC pin under
|
||||||
PIN_REQUIRED state, the query for ICC status returns UNKNOWN before it
|
PIN_REQUIRED state, the query for ICC status returns UNKNOWN before it
|
||||||
@@ -436,7 +433,8 @@ public abstract class IccCard {
|
|||||||
/*
|
/*
|
||||||
* TODO: We need to try to remove this, maybe if the RIL sends up a RIL_UNSOL_SIM_REFRESH?
|
* TODO: We need to try to remove this, maybe if the RIL sends up a RIL_UNSOL_SIM_REFRESH?
|
||||||
*/
|
*/
|
||||||
if (oldState != State.READY && newState == State.READY && LTE_AVAILABLE_ON_CDMA) {
|
if (oldState != State.READY && newState == State.READY &&
|
||||||
|
mPhone.getLteOnCdmaMode() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
if (mPhone.mIccRecords instanceof SIMRecords) {
|
if (mPhone.mIccRecords instanceof SIMRecords) {
|
||||||
((SIMRecords)mPhone.mIccRecords).onSimReady();
|
((SIMRecords)mPhone.mIccRecords).onSimReady();
|
||||||
}
|
}
|
||||||
@@ -627,7 +625,8 @@ public abstract class IccCard {
|
|||||||
currentRadioState == RadioState.SIM_NOT_READY ||
|
currentRadioState == RadioState.SIM_NOT_READY ||
|
||||||
currentRadioState == RadioState.RUIM_NOT_READY ||
|
currentRadioState == RadioState.RUIM_NOT_READY ||
|
||||||
currentRadioState == RadioState.NV_NOT_READY ||
|
currentRadioState == RadioState.NV_NOT_READY ||
|
||||||
(currentRadioState == RadioState.NV_READY && !LTE_AVAILABLE_ON_CDMA)) {
|
(currentRadioState == RadioState.NV_READY &&
|
||||||
|
(mPhone.getLteOnCdmaMode() != Phone.LTE_ON_CDMA_TRUE))) {
|
||||||
return IccCard.State.NOT_READY;
|
return IccCard.State.NOT_READY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -635,9 +634,8 @@ public abstract class IccCard {
|
|||||||
currentRadioState == RadioState.SIM_READY ||
|
currentRadioState == RadioState.SIM_READY ||
|
||||||
currentRadioState == RadioState.RUIM_LOCKED_OR_ABSENT ||
|
currentRadioState == RadioState.RUIM_LOCKED_OR_ABSENT ||
|
||||||
currentRadioState == RadioState.RUIM_READY ||
|
currentRadioState == RadioState.RUIM_READY ||
|
||||||
(currentRadioState == RadioState.NV_READY && LTE_AVAILABLE_ON_CDMA)) {
|
(currentRadioState == RadioState.NV_READY &&
|
||||||
|
(mPhone.getLteOnCdmaMode() == Phone.LTE_ON_CDMA_TRUE))) {
|
||||||
|
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
// check for CDMA radio technology
|
// check for CDMA radio technology
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.net.LinkCapabilities;
|
|||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.os.SystemProperties;
|
||||||
import android.telephony.CellLocation;
|
import android.telephony.CellLocation;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
@@ -193,6 +194,11 @@ public interface Phone {
|
|||||||
static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
|
static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
|
||||||
static final int PHONE_TYPE_SIP = RILConstants.SIP_PHONE;
|
static final int PHONE_TYPE_SIP = RILConstants.SIP_PHONE;
|
||||||
|
|
||||||
|
// Modes for LTE_ON_CDMA
|
||||||
|
static final int LTE_ON_CDMA_UNKNOWN = RILConstants.LTE_ON_CDMA_UNKNOWN;
|
||||||
|
static final int LTE_ON_CDMA_FALSE = RILConstants.LTE_ON_CDMA_FALSE;
|
||||||
|
static final int LTE_ON_CDMA_TRUE = RILConstants.LTE_ON_CDMA_TRUE;
|
||||||
|
|
||||||
// Used for preferred network type
|
// Used for preferred network type
|
||||||
// Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
|
// Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
|
||||||
int NT_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF;
|
int NT_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF;
|
||||||
@@ -1698,6 +1704,14 @@ public interface Phone {
|
|||||||
*/
|
*/
|
||||||
void unsetOnEcbModeExitResponse(Handler h);
|
void unsetOnEcbModeExitResponse(Handler h);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current radio is LTE on CDMA. This
|
||||||
|
* is a tri-state return value as for a period of time
|
||||||
|
* the mode may be unknown.
|
||||||
|
*
|
||||||
|
* @return {@link #LTE_ON_CDMA_UNKNOWN}, {@link #LTE_ON_CDMA_FALSE} or {@link #LTE_ON_CDMA_TRUE}
|
||||||
|
*/
|
||||||
|
public int getLteOnCdmaMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Adding a function for each property is not good.
|
* TODO: Adding a function for each property is not good.
|
||||||
|
|||||||
@@ -1140,4 +1140,12 @@ public abstract class PhoneBase extends Handler implements Phone {
|
|||||||
public void notifyDataConnectionFailed(String reason, String apnType) {
|
public void notifyDataConnectionFailed(String reason, String apnType) {
|
||||||
mNotifier.notifyDataConnectionFailed(this, reason, apnType);
|
mNotifier.notifyDataConnectionFailed(this, reason, apnType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLteOnCdmaMode() {
|
||||||
|
return mCM.getLteOnCdmaMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ public class PhoneFactory {
|
|||||||
static final String LOG_TAG = "PHONE";
|
static final String LOG_TAG = "PHONE";
|
||||||
static final int SOCKET_OPEN_RETRY_MILLIS = 2 * 1000;
|
static final int SOCKET_OPEN_RETRY_MILLIS = 2 * 1000;
|
||||||
static final int SOCKET_OPEN_MAX_RETRY = 3;
|
static final int SOCKET_OPEN_MAX_RETRY = 3;
|
||||||
static final boolean LTE_AVAILABLE_ON_CDMA =
|
|
||||||
SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA, false);
|
|
||||||
|
|
||||||
//***** Class Variables
|
//***** Class Variables
|
||||||
|
|
||||||
@@ -111,18 +109,17 @@ public class PhoneFactory {
|
|||||||
// the configuration, bug 4202572. And the ril issues the
|
// the configuration, bug 4202572. And the ril issues the
|
||||||
// RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED, bug 4295439.
|
// RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED, bug 4295439.
|
||||||
int cdmaSubscription;
|
int cdmaSubscription;
|
||||||
int lteOnCdma = SystemProperties.getInt(
|
int lteOnCdma = BaseCommands.getLteOnCdmaModeStatic();
|
||||||
TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA, -1);
|
|
||||||
switch (lteOnCdma) {
|
switch (lteOnCdma) {
|
||||||
case 0:
|
case Phone.LTE_ON_CDMA_FALSE:
|
||||||
cdmaSubscription = RILConstants.SUBSCRIPTION_FROM_NV;
|
cdmaSubscription = RILConstants.SUBSCRIPTION_FROM_NV;
|
||||||
Log.i(LOG_TAG, "lteOnCdma is 0 use SUBSCRIPTION_FROM_NV");
|
Log.i(LOG_TAG, "lteOnCdma is 0 use SUBSCRIPTION_FROM_NV");
|
||||||
break;
|
break;
|
||||||
case 1:
|
case Phone.LTE_ON_CDMA_TRUE:
|
||||||
cdmaSubscription = RILConstants.SUBSCRIPTION_FROM_RUIM;
|
cdmaSubscription = RILConstants.SUBSCRIPTION_FROM_RUIM;
|
||||||
Log.i(LOG_TAG, "lteOnCdma is 1 use SUBSCRIPTION_FROM_RUIM");
|
Log.i(LOG_TAG, "lteOnCdma is 1 use SUBSCRIPTION_FROM_RUIM");
|
||||||
break;
|
break;
|
||||||
case -1:
|
case Phone.LTE_ON_CDMA_UNKNOWN:
|
||||||
default:
|
default:
|
||||||
//Get cdmaSubscription mode from Settings.System
|
//Get cdmaSubscription mode from Settings.System
|
||||||
cdmaSubscription = Settings.Secure.getInt(context.getContentResolver(),
|
cdmaSubscription = Settings.Secure.getInt(context.getContentResolver(),
|
||||||
@@ -142,14 +139,18 @@ public class PhoneFactory {
|
|||||||
sProxyPhone = new PhoneProxy(new GSMPhone(context,
|
sProxyPhone = new PhoneProxy(new GSMPhone(context,
|
||||||
sCommandsInterface, sPhoneNotifier));
|
sCommandsInterface, sPhoneNotifier));
|
||||||
} else if (phoneType == Phone.PHONE_TYPE_CDMA) {
|
} else if (phoneType == Phone.PHONE_TYPE_CDMA) {
|
||||||
if (LTE_AVAILABLE_ON_CDMA == false ) {
|
switch (BaseCommands.getLteOnCdmaModeStatic()) {
|
||||||
Log.i(LOG_TAG, "Creating CDMAPhone");
|
case Phone.LTE_ON_CDMA_TRUE:
|
||||||
sProxyPhone = new PhoneProxy(new CDMAPhone(context,
|
Log.i(LOG_TAG, "Creating CDMALTEPhone");
|
||||||
sCommandsInterface, sPhoneNotifier));
|
sProxyPhone = new PhoneProxy(new CDMALTEPhone(context,
|
||||||
} else {
|
|
||||||
Log.i(LOG_TAG, "Creating CDMALTEPhone");
|
|
||||||
sProxyPhone = new PhoneProxy(new CDMALTEPhone(context,
|
|
||||||
sCommandsInterface, sPhoneNotifier));
|
sCommandsInterface, sPhoneNotifier));
|
||||||
|
break;
|
||||||
|
case Phone.LTE_ON_CDMA_FALSE:
|
||||||
|
default:
|
||||||
|
Log.i(LOG_TAG, "Creating CDMAPhone");
|
||||||
|
sProxyPhone = new PhoneProxy(new CDMAPhone(context,
|
||||||
|
sCommandsInterface, sPhoneNotifier));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,8 +186,7 @@ public class PhoneFactory {
|
|||||||
return Phone.PHONE_TYPE_CDMA;
|
return Phone.PHONE_TYPE_CDMA;
|
||||||
|
|
||||||
case RILConstants.NETWORK_MODE_LTE_ONLY:
|
case RILConstants.NETWORK_MODE_LTE_ONLY:
|
||||||
if (SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA,
|
if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
false)) {
|
|
||||||
return Phone.PHONE_TYPE_CDMA;
|
return Phone.PHONE_TYPE_CDMA;
|
||||||
} else {
|
} else {
|
||||||
return Phone.PHONE_TYPE_GSM;
|
return Phone.PHONE_TYPE_GSM;
|
||||||
@@ -209,15 +209,22 @@ public class PhoneFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Phone getCdmaPhone() {
|
public static Phone getCdmaPhone() {
|
||||||
|
Phone phone;
|
||||||
synchronized(PhoneProxy.lockForRadioTechnologyChange) {
|
synchronized(PhoneProxy.lockForRadioTechnologyChange) {
|
||||||
if (LTE_AVAILABLE_ON_CDMA == false) {
|
switch (BaseCommands.getLteOnCdmaModeStatic()) {
|
||||||
Phone phone = new CDMAPhone(sContext, sCommandsInterface, sPhoneNotifier);
|
case Phone.LTE_ON_CDMA_TRUE: {
|
||||||
return phone;
|
phone = new CDMALTEPhone(sContext, sCommandsInterface, sPhoneNotifier);
|
||||||
} else {
|
break;
|
||||||
Phone phone = new CDMALTEPhone(sContext, sCommandsInterface, sPhoneNotifier);
|
}
|
||||||
return phone;
|
case Phone.LTE_ON_CDMA_FALSE:
|
||||||
|
case Phone.LTE_ON_CDMA_UNKNOWN:
|
||||||
|
default: {
|
||||||
|
phone = new CDMAPhone(sContext, sCommandsInterface, sPhoneNotifier);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return phone;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Phone getGsmPhone() {
|
public static Phone getGsmPhone() {
|
||||||
|
|||||||
@@ -836,4 +836,12 @@ public class PhoneProxy extends Handler implements Phone {
|
|||||||
public boolean isCspPlmnEnabled() {
|
public boolean isCspPlmnEnabled() {
|
||||||
return mActivePhone.isCspPlmnEnabled();
|
return mActivePhone.isCspPlmnEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLteOnCdmaMode() {
|
||||||
|
return mActivePhone.getLteOnCdmaMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -614,35 +614,13 @@ public final class RIL extends BaseCommands implements CommandsInterface {
|
|||||||
|
|
||||||
public RIL(Context context, int networkMode, int cdmaSubscription) {
|
public RIL(Context context, int networkMode, int cdmaSubscription) {
|
||||||
super(context);
|
super(context);
|
||||||
|
if (RILJ_LOGD) {
|
||||||
|
riljLog("RIL(context, networkMode=" + networkMode +
|
||||||
|
" cdmaSubscription=" + cdmaSubscription + ")");
|
||||||
|
}
|
||||||
mCdmaSubscription = cdmaSubscription;
|
mCdmaSubscription = cdmaSubscription;
|
||||||
mNetworkMode = networkMode;
|
mNetworkMode = networkMode;
|
||||||
//At startup mPhoneType is first set from networkMode
|
mPhoneType = RILConstants.NO_PHONE;
|
||||||
switch(networkMode) {
|
|
||||||
case RILConstants.NETWORK_MODE_WCDMA_PREF:
|
|
||||||
case RILConstants.NETWORK_MODE_GSM_ONLY:
|
|
||||||
case RILConstants.NETWORK_MODE_WCDMA_ONLY:
|
|
||||||
case RILConstants.NETWORK_MODE_GSM_UMTS:
|
|
||||||
mPhoneType = RILConstants.GSM_PHONE;
|
|
||||||
break;
|
|
||||||
case RILConstants.NETWORK_MODE_CDMA:
|
|
||||||
case RILConstants.NETWORK_MODE_CDMA_NO_EVDO:
|
|
||||||
case RILConstants.NETWORK_MODE_EVDO_NO_CDMA:
|
|
||||||
mPhoneType = RILConstants.CDMA_PHONE;
|
|
||||||
break;
|
|
||||||
case RILConstants.NETWORK_MODE_GLOBAL:
|
|
||||||
mPhoneType = RILConstants.CDMA_PHONE;
|
|
||||||
break;
|
|
||||||
case RILConstants.NETWORK_MODE_LTE_ONLY:
|
|
||||||
if (SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA,
|
|
||||||
false)) {
|
|
||||||
mPhoneType = RILConstants.CDMA_PHONE;
|
|
||||||
} else {
|
|
||||||
mPhoneType = RILConstants.GSM_PHONE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mPhoneType = RILConstants.CDMA_PHONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
|
||||||
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
|
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
|
||||||
@@ -3565,7 +3543,9 @@ public final class RIL extends BaseCommands implements CommandsInterface {
|
|||||||
send(rr);
|
send(rr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPhoneType(int phoneType) { //Set by CDMAPhone and GSMPhone constructor
|
@Override
|
||||||
|
public void setPhoneType(int phoneType) { // Called by CDMAPhone and GSMPhone constructor
|
||||||
|
if (RILJ_LOGD) riljLog("setPhoneType=" + phoneType + " old value=" + mPhoneType);
|
||||||
mPhoneType = phoneType;
|
mPhoneType = phoneType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,10 @@ public interface RILConstants {
|
|||||||
int CDMA_PHONE = 2;
|
int CDMA_PHONE = 2;
|
||||||
int SIP_PHONE = 3;
|
int SIP_PHONE = 3;
|
||||||
|
|
||||||
|
int LTE_ON_CDMA_UNKNOWN = -1;
|
||||||
|
int LTE_ON_CDMA_FALSE = 0;
|
||||||
|
int LTE_ON_CDMA_TRUE = 1;
|
||||||
|
|
||||||
int CDM_TTY_MODE_DISABLED = 0;
|
int CDM_TTY_MODE_DISABLED = 0;
|
||||||
int CDM_TTY_MODE_ENABLED = 1;
|
int CDM_TTY_MODE_ENABLED = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import android.util.Log;
|
|||||||
import com.android.internal.telephony.AdnRecord;
|
import com.android.internal.telephony.AdnRecord;
|
||||||
import com.android.internal.telephony.AdnRecordCache;
|
import com.android.internal.telephony.AdnRecordCache;
|
||||||
import com.android.internal.telephony.AdnRecordLoader;
|
import com.android.internal.telephony.AdnRecordLoader;
|
||||||
|
import com.android.internal.telephony.BaseCommands;
|
||||||
import com.android.internal.telephony.CommandsInterface;
|
import com.android.internal.telephony.CommandsInterface;
|
||||||
import com.android.internal.telephony.IccFileHandler;
|
import com.android.internal.telephony.IccFileHandler;
|
||||||
import com.android.internal.telephony.IccRecords;
|
import com.android.internal.telephony.IccRecords;
|
||||||
@@ -35,6 +36,7 @@ import com.android.internal.telephony.IccUtils;
|
|||||||
import com.android.internal.telephony.IccVmFixedException;
|
import com.android.internal.telephony.IccVmFixedException;
|
||||||
import com.android.internal.telephony.IccVmNotSupportedException;
|
import com.android.internal.telephony.IccVmNotSupportedException;
|
||||||
import com.android.internal.telephony.MccTable;
|
import com.android.internal.telephony.MccTable;
|
||||||
|
import com.android.internal.telephony.Phone;
|
||||||
import com.android.internal.telephony.PhoneBase;
|
import com.android.internal.telephony.PhoneBase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -495,8 +497,7 @@ public final class SIMRecords extends IccRecords {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STOPSHIP: to be removed
|
// STOPSHIP: to be removed
|
||||||
if (SystemProperties.getInt(com.android.internal.telephony.TelephonyProperties
|
if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
.PROPERTY_NETWORK_LTE_ON_CDMA, 0) == 1) {
|
|
||||||
Log.e(LOG_TAG, "getOperatorNumeric: STOPSHIP bad numeric operators in lte");
|
Log.e(LOG_TAG, "getOperatorNumeric: STOPSHIP bad numeric operators in lte");
|
||||||
return SystemProperties.get("ro.cdma.home.operator.numeric", "310004");
|
return SystemProperties.get("ro.cdma.home.operator.numeric", "310004");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package com.android.internal.telephony.gsm;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.telephony.IccCard;
|
import com.android.internal.telephony.IccCard;
|
||||||
|
import com.android.internal.telephony.Phone;
|
||||||
import com.android.internal.telephony.PhoneBase;
|
import com.android.internal.telephony.PhoneBase;
|
||||||
import com.android.internal.telephony.TelephonyProperties;
|
import com.android.internal.telephony.TelephonyProperties;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
@@ -47,7 +48,7 @@ public final class SimCard extends IccCard {
|
|||||||
mPhone.mCM.registerForSIMReady(mHandler, EVENT_ICC_READY, null);
|
mPhone.mCM.registerForSIMReady(mHandler, EVENT_ICC_READY, null);
|
||||||
updateStateProperty();
|
updateStateProperty();
|
||||||
|
|
||||||
if(SystemProperties.getBoolean(TelephonyProperties.PROPERTY_NETWORK_LTE_ON_CDMA, false)) {
|
if(mPhone.getLteOnCdmaMode() == Phone.LTE_ON_CDMA_TRUE) {
|
||||||
mPhone.mCM.registerForNVReady(mHandler, EVENT_ICC_READY, null);
|
mPhone.mCM.registerForNVReady(mHandler, EVENT_ICC_READY, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user