Removed data and voice RAT from service state

The voice and data RAT are now derived from
CS and PS network registration info.

Test: Manual + unit tests
Bug: 129863444

Change-Id: I3f4cb6057a4ae821363099583eeac7c867147afb
This commit is contained in:
Jack Yu
2019-04-02 13:14:03 -07:00
parent e247b8e104
commit 5ff5ab5649
3 changed files with 107 additions and 83 deletions

View File

@@ -78,7 +78,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
* *
* @hide * @hide
*/ */
public final boolean isUsingCarrierAggregation; public boolean mIsUsingCarrierAggregation;
/** /**
* @hide * @hide
@@ -92,7 +92,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
this.isNrAvailable = isNrAvailable; this.isNrAvailable = isNrAvailable;
this.isEnDcAvailable = isEnDcAvailable; this.isEnDcAvailable = isEnDcAvailable;
this.mLteVopsSupportInfo = lteVops; this.mLteVopsSupportInfo = lteVops;
this.isUsingCarrierAggregation = isUsingCarrierAggregation; this.mIsUsingCarrierAggregation = isUsingCarrierAggregation;
} }
private DataSpecificRegistrationInfo(Parcel source) { private DataSpecificRegistrationInfo(Parcel source) {
@@ -101,7 +101,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
isNrAvailable = source.readBoolean(); isNrAvailable = source.readBoolean();
isEnDcAvailable = source.readBoolean(); isEnDcAvailable = source.readBoolean();
mLteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source); mLteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source);
isUsingCarrierAggregation = source.readBoolean(); mIsUsingCarrierAggregation = source.readBoolean();
} }
@Override @Override
@@ -111,7 +111,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
dest.writeBoolean(isNrAvailable); dest.writeBoolean(isNrAvailable);
dest.writeBoolean(isEnDcAvailable); dest.writeBoolean(isEnDcAvailable);
mLteVopsSupportInfo.writeToParcel(dest, flags); mLteVopsSupportInfo.writeToParcel(dest, flags);
dest.writeBoolean(isUsingCarrierAggregation); dest.writeBoolean(mIsUsingCarrierAggregation);
} }
@Override @Override
@@ -128,7 +128,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
.append(" isNrAvailable = " + isNrAvailable) .append(" isNrAvailable = " + isNrAvailable)
.append(" isEnDcAvailable = " + isEnDcAvailable) .append(" isEnDcAvailable = " + isEnDcAvailable)
.append(" " + mLteVopsSupportInfo.toString()) .append(" " + mLteVopsSupportInfo.toString())
.append(" isUsingCarrierAggregation = " + isUsingCarrierAggregation) .append(" mIsUsingCarrierAggregation = " + mIsUsingCarrierAggregation)
.append(" }") .append(" }")
.toString(); .toString();
} }
@@ -136,7 +136,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable, return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable,
mLteVopsSupportInfo, isUsingCarrierAggregation); mLteVopsSupportInfo, mIsUsingCarrierAggregation);
} }
@Override @Override
@@ -151,7 +151,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
&& this.isNrAvailable == other.isNrAvailable && this.isNrAvailable == other.isNrAvailable
&& this.isEnDcAvailable == other.isEnDcAvailable && this.isEnDcAvailable == other.isEnDcAvailable
&& this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo) && this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo)
&& this.isUsingCarrierAggregation == other.isUsingCarrierAggregation; && this.mIsUsingCarrierAggregation == other.mIsUsingCarrierAggregation;
} }
public static final @NonNull Parcelable.Creator<DataSpecificRegistrationInfo> CREATOR = public static final @NonNull Parcelable.Creator<DataSpecificRegistrationInfo> CREATOR =
@@ -174,4 +174,22 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
public LteVopsSupportInfo getLteVopsSupportInfo() { public LteVopsSupportInfo getLteVopsSupportInfo() {
return mLteVopsSupportInfo; return mLteVopsSupportInfo;
} }
/**
* Set the flag indicating if using carrier aggregation.
*
* @param isUsingCarrierAggregation {@code true} if using carrier aggregation.
* @hide
*/
public void setIsUsingCarrierAggregation(boolean isUsingCarrierAggregation) {
mIsUsingCarrierAggregation = isUsingCarrierAggregation;
}
/**
* @return {@code true} if using carrier aggregation.
* @hide
*/
public boolean isUsingCarrierAggregation() {
return mIsUsingCarrierAggregation;
}
} }

View File

@@ -368,6 +368,13 @@ public final class NetworkRegistrationInfo implements Parcelable {
* @hide * @hide
*/ */
public void setAccessNetworkTechnology(@NetworkType int tech) { public void setAccessNetworkTechnology(@NetworkType int tech) {
if (tech == TelephonyManager.NETWORK_TYPE_LTE_CA) {
// For old device backward compatibility support
tech = TelephonyManager.NETWORK_TYPE_LTE;
if (mDataSpecificInfo != null) {
mDataSpecificInfo.setIsUsingCarrierAggregation(true);
}
}
mAccessNetworkTechnology = tech; mAccessNetworkTechnology = tech;
} }

View File

@@ -312,18 +312,6 @@ public class ServiceState implements Parcelable {
private boolean mIsManualNetworkSelection; private boolean mIsManualNetworkSelection;
private boolean mIsEmergencyOnly; private boolean mIsEmergencyOnly;
/**
* TODO: remove mRilVoiceRadioTechnology after completely migrate to
* {@link TelephonyManager.NetworkType}
*/
@RilRadioTechnology
private int mRilVoiceRadioTechnology;
/**
* TODO: remove mRilDataRadioTechnology after completely migrate to
* {@link TelephonyManager.NetworkType}
*/
@RilRadioTechnology
private int mRilDataRadioTechnology;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
private boolean mCssIndicator; private boolean mCssIndicator;
@@ -340,9 +328,6 @@ public class ServiceState implements Parcelable {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
private int mCdmaEriIconMode; private int mCdmaEriIconMode;
@UnsupportedAppUsage
private boolean mIsUsingCarrierAggregation;
@FrequencyRange @FrequencyRange
private int mNrFrequencyRange; private int mNrFrequencyRange;
private int mChannelNumber; private int mChannelNumber;
@@ -420,8 +405,6 @@ public class ServiceState implements Parcelable {
mDataOperatorAlphaShort = s.mDataOperatorAlphaShort; mDataOperatorAlphaShort = s.mDataOperatorAlphaShort;
mDataOperatorNumeric = s.mDataOperatorNumeric; mDataOperatorNumeric = s.mDataOperatorNumeric;
mIsManualNetworkSelection = s.mIsManualNetworkSelection; mIsManualNetworkSelection = s.mIsManualNetworkSelection;
mRilVoiceRadioTechnology = s.mRilVoiceRadioTechnology;
mRilDataRadioTechnology = s.mRilDataRadioTechnology;
mCssIndicator = s.mCssIndicator; mCssIndicator = s.mCssIndicator;
mNetworkId = s.mNetworkId; mNetworkId = s.mNetworkId;
mSystemId = s.mSystemId; mSystemId = s.mSystemId;
@@ -430,7 +413,6 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconIndex = s.mCdmaEriIconIndex;
mCdmaEriIconMode = s.mCdmaEriIconMode; mCdmaEriIconMode = s.mCdmaEriIconMode;
mIsEmergencyOnly = s.mIsEmergencyOnly; mIsEmergencyOnly = s.mIsEmergencyOnly;
mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation;
mChannelNumber = s.mChannelNumber; mChannelNumber = s.mChannelNumber;
mCellBandwidths = s.mCellBandwidths == null ? null : mCellBandwidths = s.mCellBandwidths == null ? null :
Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length); Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length);
@@ -457,8 +439,6 @@ public class ServiceState implements Parcelable {
mDataOperatorAlphaShort = in.readString(); mDataOperatorAlphaShort = in.readString();
mDataOperatorNumeric = in.readString(); mDataOperatorNumeric = in.readString();
mIsManualNetworkSelection = in.readInt() != 0; mIsManualNetworkSelection = in.readInt() != 0;
mRilVoiceRadioTechnology = in.readInt();
mRilDataRadioTechnology = in.readInt();
mCssIndicator = (in.readInt() != 0); mCssIndicator = (in.readInt() != 0);
mNetworkId = in.readInt(); mNetworkId = in.readInt();
mSystemId = in.readInt(); mSystemId = in.readInt();
@@ -467,7 +447,6 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = in.readInt(); mCdmaEriIconIndex = in.readInt();
mCdmaEriIconMode = in.readInt(); mCdmaEriIconMode = in.readInt();
mIsEmergencyOnly = in.readInt() != 0; mIsEmergencyOnly = in.readInt() != 0;
mIsUsingCarrierAggregation = in.readInt() != 0;
mLteEarfcnRsrpBoost = in.readInt(); mLteEarfcnRsrpBoost = in.readInt();
mNetworkRegistrationInfos = new ArrayList<>(); mNetworkRegistrationInfos = new ArrayList<>();
in.readList(mNetworkRegistrationInfos, NetworkRegistrationInfo.class.getClassLoader()); in.readList(mNetworkRegistrationInfos, NetworkRegistrationInfo.class.getClassLoader());
@@ -486,8 +465,6 @@ public class ServiceState implements Parcelable {
out.writeString(mDataOperatorAlphaShort); out.writeString(mDataOperatorAlphaShort);
out.writeString(mDataOperatorNumeric); out.writeString(mDataOperatorNumeric);
out.writeInt(mIsManualNetworkSelection ? 1 : 0); out.writeInt(mIsManualNetworkSelection ? 1 : 0);
out.writeInt(mRilVoiceRadioTechnology);
out.writeInt(mRilDataRadioTechnology);
out.writeInt(mCssIndicator ? 1 : 0); out.writeInt(mCssIndicator ? 1 : 0);
out.writeInt(mNetworkId); out.writeInt(mNetworkId);
out.writeInt(mSystemId); out.writeInt(mSystemId);
@@ -496,7 +473,6 @@ public class ServiceState implements Parcelable {
out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconIndex);
out.writeInt(mCdmaEriIconMode); out.writeInt(mCdmaEriIconMode);
out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsEmergencyOnly ? 1 : 0);
out.writeInt(mIsUsingCarrierAggregation ? 1 : 0);
out.writeInt(mLteEarfcnRsrpBoost); out.writeInt(mLteEarfcnRsrpBoost);
out.writeList(mNetworkRegistrationInfos); out.writeList(mNetworkRegistrationInfos);
out.writeInt(mChannelNumber); out.writeInt(mChannelNumber);
@@ -568,7 +544,7 @@ public class ServiceState implements Parcelable {
@DuplexMode @DuplexMode
public int getDuplexMode() { public int getDuplexMode() {
// only support LTE duplex mode // only support LTE duplex mode
if (!isLte(mRilDataRadioTechnology)) { if (!isLte(getRilDataRadioTechnology())) {
return DUPLEX_MODE_UNKNOWN; return DUPLEX_MODE_UNKNOWN;
} }
@@ -850,8 +826,6 @@ public class ServiceState implements Parcelable {
mDataOperatorAlphaShort, mDataOperatorAlphaShort,
mDataOperatorNumeric, mDataOperatorNumeric,
mIsManualNetworkSelection, mIsManualNetworkSelection,
mRilVoiceRadioTechnology,
mRilDataRadioTechnology,
mCssIndicator, mCssIndicator,
mNetworkId, mNetworkId,
mSystemId, mSystemId,
@@ -860,7 +834,6 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex, mCdmaEriIconIndex,
mCdmaEriIconMode, mCdmaEriIconMode,
mIsEmergencyOnly, mIsEmergencyOnly,
mIsUsingCarrierAggregation,
mLteEarfcnRsrpBoost, mLteEarfcnRsrpBoost,
mNetworkRegistrationInfos, mNetworkRegistrationInfos,
mNrFrequencyRange); mNrFrequencyRange);
@@ -871,7 +844,7 @@ public class ServiceState implements Parcelable {
if (!(o instanceof ServiceState)) return false; if (!(o instanceof ServiceState)) return false;
ServiceState s = (ServiceState) o; ServiceState s = (ServiceState) o;
return (mVoiceRegState == s.mVoiceRegState return mVoiceRegState == s.mVoiceRegState
&& mDataRegState == s.mDataRegState && mDataRegState == s.mDataRegState
&& mIsManualNetworkSelection == s.mIsManualNetworkSelection && mIsManualNetworkSelection == s.mIsManualNetworkSelection
&& mChannelNumber == s.mChannelNumber && mChannelNumber == s.mChannelNumber
@@ -882,8 +855,6 @@ public class ServiceState implements Parcelable {
&& equalsHandlesNulls(mDataOperatorAlphaLong, s.mDataOperatorAlphaLong) && equalsHandlesNulls(mDataOperatorAlphaLong, s.mDataOperatorAlphaLong)
&& equalsHandlesNulls(mDataOperatorAlphaShort, s.mDataOperatorAlphaShort) && equalsHandlesNulls(mDataOperatorAlphaShort, s.mDataOperatorAlphaShort)
&& equalsHandlesNulls(mDataOperatorNumeric, s.mDataOperatorNumeric) && equalsHandlesNulls(mDataOperatorNumeric, s.mDataOperatorNumeric)
&& equalsHandlesNulls(mRilVoiceRadioTechnology, s.mRilVoiceRadioTechnology)
&& equalsHandlesNulls(mRilDataRadioTechnology, s.mRilDataRadioTechnology)
&& equalsHandlesNulls(mCssIndicator, s.mCssIndicator) && equalsHandlesNulls(mCssIndicator, s.mCssIndicator)
&& equalsHandlesNulls(mNetworkId, s.mNetworkId) && equalsHandlesNulls(mNetworkId, s.mNetworkId)
&& equalsHandlesNulls(mSystemId, s.mSystemId) && equalsHandlesNulls(mSystemId, s.mSystemId)
@@ -891,7 +862,6 @@ public class ServiceState implements Parcelable {
&& equalsHandlesNulls(mCdmaDefaultRoamingIndicator, && equalsHandlesNulls(mCdmaDefaultRoamingIndicator,
s.mCdmaDefaultRoamingIndicator) s.mCdmaDefaultRoamingIndicator)
&& mIsEmergencyOnly == s.mIsEmergencyOnly && mIsEmergencyOnly == s.mIsEmergencyOnly
&& mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation)
&& (mNetworkRegistrationInfos == null && (mNetworkRegistrationInfos == null
? s.mNetworkRegistrationInfos == null : s.mNetworkRegistrationInfos != null ? s.mNetworkRegistrationInfos == null : s.mNetworkRegistrationInfos != null
&& mNetworkRegistrationInfos.containsAll(s.mNetworkRegistrationInfos)) && mNetworkRegistrationInfos.containsAll(s.mNetworkRegistrationInfos))
@@ -1035,27 +1005,27 @@ public class ServiceState implements Parcelable {
.append(", mDataOperatorAlphaShort=").append(mDataOperatorAlphaShort) .append(", mDataOperatorAlphaShort=").append(mDataOperatorAlphaShort)
.append(", isManualNetworkSelection=").append(mIsManualNetworkSelection) .append(", isManualNetworkSelection=").append(mIsManualNetworkSelection)
.append(mIsManualNetworkSelection ? "(manual)" : "(automatic)") .append(mIsManualNetworkSelection ? "(manual)" : "(automatic)")
.append(", mRilVoiceRadioTechnology=").append(mRilVoiceRadioTechnology) .append(", getRilVoiceRadioTechnology=").append(getRilVoiceRadioTechnology())
.append("(" + rilRadioTechnologyToString(mRilVoiceRadioTechnology) + ")") .append("(" + rilRadioTechnologyToString(getRilVoiceRadioTechnology()) + ")")
.append(", mRilDataRadioTechnology=").append(mRilDataRadioTechnology) .append(", getRilDataRadioTechnology=").append(getRilDataRadioTechnology())
.append("(" + rilRadioTechnologyToString(mRilDataRadioTechnology) + ")") .append("(" + rilRadioTechnologyToString(getRilDataRadioTechnology()) + ")")
.append(", mCssIndicator=").append(mCssIndicator ? "supported" : "unsupported") .append(", mCssIndicator=").append(mCssIndicator ? "supported" : "unsupported")
.append(", mNetworkId=").append(mNetworkId) .append(", mNetworkId=").append(mNetworkId)
.append(", mSystemId=").append(mSystemId) .append(", mSystemId=").append(mSystemId)
.append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator) .append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator)
.append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator) .append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator)
.append(", mIsEmergencyOnly=").append(mIsEmergencyOnly) .append(", mIsEmergencyOnly=").append(mIsEmergencyOnly)
.append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation) .append(", isUsingCarrierAggregation=").append(isUsingCarrierAggregation())
.append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost) .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost)
.append(", mNetworkRegistrationInfos=").append(mNetworkRegistrationInfos) .append(", mNetworkRegistrationInfos=").append(mNetworkRegistrationInfos)
.append(", mNrFrequencyRange=").append(mNrFrequencyRange) .append(", mNrFrequencyRange=").append(mNrFrequencyRange)
.append("}").toString(); .append("}").toString();
} }
private void setNullState(int state) { private void init() {
if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setNullState=" + state); if (DBG) Rlog.d(LOG_TAG, "init");
mVoiceRegState = state; mVoiceRegState = STATE_OUT_OF_SERVICE;
mDataRegState = state; mDataRegState = STATE_OUT_OF_SERVICE;
mChannelNumber = -1; mChannelNumber = -1;
mCellBandwidths = new int[0]; mCellBandwidths = new int[0];
mVoiceOperatorAlphaLong = null; mVoiceOperatorAlphaLong = null;
@@ -1065,8 +1035,6 @@ public class ServiceState implements Parcelable {
mDataOperatorAlphaShort = null; mDataOperatorAlphaShort = null;
mDataOperatorNumeric = null; mDataOperatorNumeric = null;
mIsManualNetworkSelection = false; mIsManualNetworkSelection = false;
mRilVoiceRadioTechnology = 0;
mRilDataRadioTechnology = 0;
mCssIndicator = false; mCssIndicator = false;
mNetworkId = -1; mNetworkId = -1;
mSystemId = -1; mSystemId = -1;
@@ -1075,18 +1043,28 @@ public class ServiceState implements Parcelable {
mCdmaEriIconIndex = -1; mCdmaEriIconIndex = -1;
mCdmaEriIconMode = -1; mCdmaEriIconMode = -1;
mIsEmergencyOnly = false; mIsEmergencyOnly = false;
mIsUsingCarrierAggregation = false;
mLteEarfcnRsrpBoost = 0; mLteEarfcnRsrpBoost = 0;
mNetworkRegistrationInfos = new ArrayList<>();
mNrFrequencyRange = FREQUENCY_RANGE_UNKNOWN; mNrFrequencyRange = FREQUENCY_RANGE_UNKNOWN;
addNetworkRegistrationInfo(new NetworkRegistrationInfo.Builder()
.setDomain(NetworkRegistrationInfo.DOMAIN_CS)
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
.setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN)
.build());
addNetworkRegistrationInfo(new NetworkRegistrationInfo.Builder()
.setDomain(NetworkRegistrationInfo.DOMAIN_PS)
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
.setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN)
.build());
} }
public void setStateOutOfService() { public void setStateOutOfService() {
setNullState(STATE_OUT_OF_SERVICE); init();
} }
public void setStateOff() { public void setStateOff() {
setNullState(STATE_POWER_OFF); init();
mVoiceRegState = STATE_POWER_OFF;
mDataRegState = STATE_POWER_OFF;
} }
public void setState(int state) { public void setState(int state) {
@@ -1304,8 +1282,8 @@ public class ServiceState implements Parcelable {
m.putString("data-operator-alpha-short", mDataOperatorAlphaShort); m.putString("data-operator-alpha-short", mDataOperatorAlphaShort);
m.putString("data-operator-numeric", mDataOperatorNumeric); m.putString("data-operator-numeric", mDataOperatorNumeric);
m.putBoolean("manual", mIsManualNetworkSelection); m.putBoolean("manual", mIsManualNetworkSelection);
m.putInt("radioTechnology", mRilVoiceRadioTechnology); m.putInt("radioTechnology", getRilVoiceRadioTechnology());
m.putInt("dataRadioTechnology", mRilDataRadioTechnology); m.putInt("dataRadioTechnology", getRadioTechnology());
m.putBoolean("cssIndicator", mCssIndicator); m.putBoolean("cssIndicator", mCssIndicator);
m.putInt("networkId", mNetworkId); m.putInt("networkId", mNetworkId);
m.putInt("systemId", mSystemId); m.putInt("systemId", mSystemId);
@@ -1313,7 +1291,7 @@ public class ServiceState implements Parcelable {
m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator);
m.putBoolean("emergencyOnly", mIsEmergencyOnly); m.putBoolean("emergencyOnly", mIsEmergencyOnly);
m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration()); m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration());
m.putBoolean("isUsingCarrierAggregation", mIsUsingCarrierAggregation); m.putBoolean("isUsingCarrierAggregation", isUsingCarrierAggregation());
m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost); m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost);
m.putInt("ChannelNumber", mChannelNumber); m.putInt("ChannelNumber", mChannelNumber);
m.putIntArray("CellBandwidths", mCellBandwidths); m.putIntArray("CellBandwidths", mCellBandwidths);
@@ -1323,13 +1301,9 @@ public class ServiceState implements Parcelable {
/** @hide */ /** @hide */
@TestApi @TestApi
public void setRilVoiceRadioTechnology(@RilRadioTechnology int rt) { public void setRilVoiceRadioTechnology(@RilRadioTechnology int rt) {
if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { Rlog.e(LOG_TAG, "ServiceState.setRilVoiceRadioTechnology() called. It's encouraged to "
rt = RIL_RADIO_TECHNOLOGY_LTE; + "use addNetworkRegistrationInfo() instead *******");
} // Sync to network registration state
this.mRilVoiceRadioTechnology = rt;
// sync to network registration state
NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo regState = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (regState == null) { if (regState == null) {
@@ -1339,24 +1313,18 @@ public class ServiceState implements Parcelable {
.build(); .build();
addNetworkRegistrationInfo(regState); addNetworkRegistrationInfo(regState);
} }
regState.setAccessNetworkTechnology( regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt));
rilRadioTechnologyToNetworkType(mRilVoiceRadioTechnology));
} }
/** @hide */ /** @hide */
@TestApi @TestApi
public void setRilDataRadioTechnology(@RilRadioTechnology int rt) { public void setRilDataRadioTechnology(@RilRadioTechnology int rt) {
if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { Rlog.e(LOG_TAG, "ServiceState.setRilDataRadioTechnology() called. It's encouraged to "
rt = RIL_RADIO_TECHNOLOGY_LTE; + "use addNetworkRegistrationInfo() instead *******");
this.mIsUsingCarrierAggregation = true; // Sync to network registration state. Always write down the WWAN transport. For AP-assisted
} else { // mode device, use addNetworkRegistrationInfo() to set the correct transport if RAT
this.mIsUsingCarrierAggregation = false; // is IWLAN.
}
this.mRilDataRadioTechnology = rt;
if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setRilDataRadioTechnology=" +
mRilDataRadioTechnology);
// sync to network registration state
NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo regState = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
@@ -1367,18 +1335,32 @@ public class ServiceState implements Parcelable {
.build(); .build();
addNetworkRegistrationInfo(regState); addNetworkRegistrationInfo(regState);
} }
regState.setAccessNetworkTechnology( regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt));
rilRadioTechnologyToNetworkType(mRilDataRadioTechnology));
} }
/** @hide */ /** @hide */
public boolean isUsingCarrierAggregation() { public boolean isUsingCarrierAggregation() {
return mIsUsingCarrierAggregation; NetworkRegistrationInfo nri = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (nri != null) {
DataSpecificRegistrationInfo dsri = nri.getDataSpecificInfo();
if (dsri != null) {
return dsri.isUsingCarrierAggregation();
}
}
return false;
} }
/** @hide */ /** @hide */
public void setIsUsingCarrierAggregation(boolean ca) { public void setIsUsingCarrierAggregation(boolean ca) {
mIsUsingCarrierAggregation = ca; NetworkRegistrationInfo nri = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (nri != null) {
DataSpecificRegistrationInfo dsri = nri.getDataSpecificInfo();
if (dsri != null) {
dsri.setIsUsingCarrierAggregation(ca);
}
}
} }
/** /**
@@ -1435,12 +1417,29 @@ public class ServiceState implements Parcelable {
/** @hide */ /** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public int getRilVoiceRadioTechnology() { public int getRilVoiceRadioTechnology() {
return this.mRilVoiceRadioTechnology; NetworkRegistrationInfo wwanRegInfo = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (wwanRegInfo != null) {
return networkTypeToRilRadioTechnology(wwanRegInfo.getAccessNetworkTechnology());
}
return RIL_RADIO_TECHNOLOGY_UNKNOWN;
} }
/** @hide */ /** @hide */
@UnsupportedAppUsage @UnsupportedAppUsage
public int getRilDataRadioTechnology() { public int getRilDataRadioTechnology() {
return this.mRilDataRadioTechnology; NetworkRegistrationInfo wwanRegInfo = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
NetworkRegistrationInfo wlanRegInfo = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
if (wlanRegInfo != null
&& wlanRegInfo.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN
&& wlanRegInfo.getRegistrationState()
== NetworkRegistrationInfo.REGISTRATION_STATE_HOME) {
return RIL_RADIO_TECHNOLOGY_IWLAN;
} else if (wwanRegInfo != null) {
return networkTypeToRilRadioTechnology(wwanRegInfo.getAccessNetworkTechnology());
}
return RIL_RADIO_TECHNOLOGY_UNKNOWN;
} }
/** /**
* @hide * @hide