Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ced4a317 authored by Jack Yu's avatar Jack Yu Committed by Gerrit Code Review
Browse files

Merge "Removed data and voice RAT from service state"

parents 63bf4869 138e2af5
Loading
Loading
Loading
Loading
+25 −7
Original line number Original line Diff line number Diff line
@@ -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;
    }
}
}
+7 −0
Original line number Original line Diff line number Diff line
@@ -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;
    }
    }


+75 −76
Original line number Original line Diff line number Diff line
@@ -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