Loading telephony/java/android/telephony/DataSpecificRegistrationInfo.java +25 −7 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { * * @hide */ public final boolean isUsingCarrierAggregation; public boolean mIsUsingCarrierAggregation; /** * @hide Loading @@ -92,7 +92,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { this.isNrAvailable = isNrAvailable; this.isEnDcAvailable = isEnDcAvailable; this.mLteVopsSupportInfo = lteVops; this.isUsingCarrierAggregation = isUsingCarrierAggregation; this.mIsUsingCarrierAggregation = isUsingCarrierAggregation; } private DataSpecificRegistrationInfo(Parcel source) { Loading @@ -101,7 +101,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { isNrAvailable = source.readBoolean(); isEnDcAvailable = source.readBoolean(); mLteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source); isUsingCarrierAggregation = source.readBoolean(); mIsUsingCarrierAggregation = source.readBoolean(); } @Override Loading @@ -111,7 +111,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { dest.writeBoolean(isNrAvailable); dest.writeBoolean(isEnDcAvailable); mLteVopsSupportInfo.writeToParcel(dest, flags); dest.writeBoolean(isUsingCarrierAggregation); dest.writeBoolean(mIsUsingCarrierAggregation); } @Override Loading @@ -128,7 +128,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { .append(" isNrAvailable = " + isNrAvailable) .append(" isEnDcAvailable = " + isEnDcAvailable) .append(" " + mLteVopsSupportInfo.toString()) .append(" isUsingCarrierAggregation = " + isUsingCarrierAggregation) .append(" mIsUsingCarrierAggregation = " + mIsUsingCarrierAggregation) .append(" }") .toString(); } Loading @@ -136,7 +136,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { @Override public int hashCode() { return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable, mLteVopsSupportInfo, isUsingCarrierAggregation); mLteVopsSupportInfo, mIsUsingCarrierAggregation); } @Override Loading @@ -151,7 +151,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { && this.isNrAvailable == other.isNrAvailable && this.isEnDcAvailable == other.isEnDcAvailable && this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo) && this.isUsingCarrierAggregation == other.isUsingCarrierAggregation; && this.mIsUsingCarrierAggregation == other.mIsUsingCarrierAggregation; } public static final @NonNull Parcelable.Creator<DataSpecificRegistrationInfo> CREATOR = Loading @@ -174,4 +174,22 @@ public final class DataSpecificRegistrationInfo implements Parcelable { public LteVopsSupportInfo getLteVopsSupportInfo() { 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; } } telephony/java/android/telephony/NetworkRegistrationInfo.java +7 −0 Original line number Diff line number Diff line Loading @@ -368,6 +368,13 @@ public final class NetworkRegistrationInfo implements Parcelable { * @hide */ 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; } Loading telephony/java/android/telephony/ServiceState.java +75 −76 Original line number Diff line number Diff line Loading @@ -312,18 +312,6 @@ public class ServiceState implements Parcelable { private boolean mIsManualNetworkSelection; 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) private boolean mCssIndicator; Loading @@ -340,9 +328,6 @@ public class ServiceState implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mCdmaEriIconMode; @UnsupportedAppUsage private boolean mIsUsingCarrierAggregation; @FrequencyRange private int mNrFrequencyRange; private int mChannelNumber; Loading Loading @@ -420,8 +405,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = s.mDataOperatorAlphaShort; mDataOperatorNumeric = s.mDataOperatorNumeric; mIsManualNetworkSelection = s.mIsManualNetworkSelection; mRilVoiceRadioTechnology = s.mRilVoiceRadioTechnology; mRilDataRadioTechnology = s.mRilDataRadioTechnology; mCssIndicator = s.mCssIndicator; mNetworkId = s.mNetworkId; mSystemId = s.mSystemId; Loading @@ -430,7 +413,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; mIsEmergencyOnly = s.mIsEmergencyOnly; mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation; mChannelNumber = s.mChannelNumber; mCellBandwidths = s.mCellBandwidths == null ? null : Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length); Loading @@ -457,8 +439,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = in.readString(); mDataOperatorNumeric = in.readString(); mIsManualNetworkSelection = in.readInt() != 0; mRilVoiceRadioTechnology = in.readInt(); mRilDataRadioTechnology = in.readInt(); mCssIndicator = (in.readInt() != 0); mNetworkId = in.readInt(); mSystemId = in.readInt(); Loading @@ -467,7 +447,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); mIsEmergencyOnly = in.readInt() != 0; mIsUsingCarrierAggregation = in.readInt() != 0; mLteEarfcnRsrpBoost = in.readInt(); mNetworkRegistrationInfos = new ArrayList<>(); in.readList(mNetworkRegistrationInfos, NetworkRegistrationInfo.class.getClassLoader()); Loading @@ -486,8 +465,6 @@ public class ServiceState implements Parcelable { out.writeString(mDataOperatorAlphaShort); out.writeString(mDataOperatorNumeric); out.writeInt(mIsManualNetworkSelection ? 1 : 0); out.writeInt(mRilVoiceRadioTechnology); out.writeInt(mRilDataRadioTechnology); out.writeInt(mCssIndicator ? 1 : 0); out.writeInt(mNetworkId); out.writeInt(mSystemId); Loading @@ -496,7 +473,6 @@ public class ServiceState implements Parcelable { out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsUsingCarrierAggregation ? 1 : 0); out.writeInt(mLteEarfcnRsrpBoost); out.writeList(mNetworkRegistrationInfos); out.writeInt(mChannelNumber); Loading Loading @@ -568,7 +544,7 @@ public class ServiceState implements Parcelable { @DuplexMode public int getDuplexMode() { // only support LTE duplex mode if (!isLte(mRilDataRadioTechnology)) { if (!isLte(getRilDataRadioTechnology())) { return DUPLEX_MODE_UNKNOWN; } Loading Loading @@ -850,8 +826,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort, mDataOperatorNumeric, mIsManualNetworkSelection, mRilVoiceRadioTechnology, mRilDataRadioTechnology, mCssIndicator, mNetworkId, mSystemId, Loading @@ -860,7 +834,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex, mCdmaEriIconMode, mIsEmergencyOnly, mIsUsingCarrierAggregation, mLteEarfcnRsrpBoost, mNetworkRegistrationInfos, mNrFrequencyRange); Loading @@ -871,7 +844,7 @@ public class ServiceState implements Parcelable { if (!(o instanceof ServiceState)) return false; ServiceState s = (ServiceState) o; return (mVoiceRegState == s.mVoiceRegState return mVoiceRegState == s.mVoiceRegState && mDataRegState == s.mDataRegState && mIsManualNetworkSelection == s.mIsManualNetworkSelection && mChannelNumber == s.mChannelNumber Loading @@ -882,8 +855,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mDataOperatorAlphaLong, s.mDataOperatorAlphaLong) && equalsHandlesNulls(mDataOperatorAlphaShort, s.mDataOperatorAlphaShort) && equalsHandlesNulls(mDataOperatorNumeric, s.mDataOperatorNumeric) && equalsHandlesNulls(mRilVoiceRadioTechnology, s.mRilVoiceRadioTechnology) && equalsHandlesNulls(mRilDataRadioTechnology, s.mRilDataRadioTechnology) && equalsHandlesNulls(mCssIndicator, s.mCssIndicator) && equalsHandlesNulls(mNetworkId, s.mNetworkId) && equalsHandlesNulls(mSystemId, s.mSystemId) Loading @@ -891,7 +862,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, s.mCdmaDefaultRoamingIndicator) && mIsEmergencyOnly == s.mIsEmergencyOnly && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation) && (mNetworkRegistrationInfos == null ? s.mNetworkRegistrationInfos == null : s.mNetworkRegistrationInfos != null && mNetworkRegistrationInfos.containsAll(s.mNetworkRegistrationInfos)) Loading Loading @@ -1035,27 +1005,27 @@ public class ServiceState implements Parcelable { .append(", mDataOperatorAlphaShort=").append(mDataOperatorAlphaShort) .append(", isManualNetworkSelection=").append(mIsManualNetworkSelection) .append(mIsManualNetworkSelection ? "(manual)" : "(automatic)") .append(", mRilVoiceRadioTechnology=").append(mRilVoiceRadioTechnology) .append("(" + rilRadioTechnologyToString(mRilVoiceRadioTechnology) + ")") .append(", mRilDataRadioTechnology=").append(mRilDataRadioTechnology) .append("(" + rilRadioTechnologyToString(mRilDataRadioTechnology) + ")") .append(", getRilVoiceRadioTechnology=").append(getRilVoiceRadioTechnology()) .append("(" + rilRadioTechnologyToString(getRilVoiceRadioTechnology()) + ")") .append(", getRilDataRadioTechnology=").append(getRilDataRadioTechnology()) .append("(" + rilRadioTechnologyToString(getRilDataRadioTechnology()) + ")") .append(", mCssIndicator=").append(mCssIndicator ? "supported" : "unsupported") .append(", mNetworkId=").append(mNetworkId) .append(", mSystemId=").append(mSystemId) .append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator) .append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator) .append(", mIsEmergencyOnly=").append(mIsEmergencyOnly) .append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation) .append(", isUsingCarrierAggregation=").append(isUsingCarrierAggregation()) .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost) .append(", mNetworkRegistrationInfos=").append(mNetworkRegistrationInfos) .append(", mNrFrequencyRange=").append(mNrFrequencyRange) .append("}").toString(); } private void setNullState(int state) { if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setNullState=" + state); mVoiceRegState = state; mDataRegState = state; private void init() { if (DBG) Rlog.d(LOG_TAG, "init"); mVoiceRegState = STATE_OUT_OF_SERVICE; mDataRegState = STATE_OUT_OF_SERVICE; mChannelNumber = -1; mCellBandwidths = new int[0]; mVoiceOperatorAlphaLong = null; Loading @@ -1065,8 +1035,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = null; mDataOperatorNumeric = null; mIsManualNetworkSelection = false; mRilVoiceRadioTechnology = 0; mRilDataRadioTechnology = 0; mCssIndicator = false; mNetworkId = -1; mSystemId = -1; Loading @@ -1075,18 +1043,28 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; mIsEmergencyOnly = false; mIsUsingCarrierAggregation = false; mLteEarfcnRsrpBoost = 0; mNetworkRegistrationInfos = new ArrayList<>(); 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() { setNullState(STATE_OUT_OF_SERVICE); init(); } public void setStateOff() { setNullState(STATE_POWER_OFF); init(); mVoiceRegState = STATE_POWER_OFF; mDataRegState = STATE_POWER_OFF; } public void setState(int state) { Loading Loading @@ -1304,8 +1282,8 @@ public class ServiceState implements Parcelable { m.putString("data-operator-alpha-short", mDataOperatorAlphaShort); m.putString("data-operator-numeric", mDataOperatorNumeric); m.putBoolean("manual", mIsManualNetworkSelection); m.putInt("radioTechnology", mRilVoiceRadioTechnology); m.putInt("dataRadioTechnology", mRilDataRadioTechnology); m.putInt("radioTechnology", getRilVoiceRadioTechnology()); m.putInt("dataRadioTechnology", getRadioTechnology()); m.putBoolean("cssIndicator", mCssIndicator); m.putInt("networkId", mNetworkId); m.putInt("systemId", mSystemId); Loading @@ -1313,7 +1291,7 @@ public class ServiceState implements Parcelable { m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putBoolean("emergencyOnly", mIsEmergencyOnly); m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration()); m.putBoolean("isUsingCarrierAggregation", mIsUsingCarrierAggregation); m.putBoolean("isUsingCarrierAggregation", isUsingCarrierAggregation()); m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost); m.putInt("ChannelNumber", mChannelNumber); m.putIntArray("CellBandwidths", mCellBandwidths); Loading @@ -1323,13 +1301,9 @@ public class ServiceState implements Parcelable { /** @hide */ @TestApi public void setRilVoiceRadioTechnology(@RilRadioTechnology int rt) { if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { rt = RIL_RADIO_TECHNOLOGY_LTE; } this.mRilVoiceRadioTechnology = rt; // sync to network registration state Rlog.e(LOG_TAG, "ServiceState.setRilVoiceRadioTechnology() called. It's encouraged to " + "use addNetworkRegistrationInfo() instead *******"); // Sync to network registration state NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); if (regState == null) { Loading @@ -1339,24 +1313,18 @@ public class ServiceState implements Parcelable { .build(); addNetworkRegistrationInfo(regState); } regState.setAccessNetworkTechnology( rilRadioTechnologyToNetworkType(mRilVoiceRadioTechnology)); regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt)); } /** @hide */ @TestApi public void setRilDataRadioTechnology(@RilRadioTechnology int rt) { if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { rt = RIL_RADIO_TECHNOLOGY_LTE; this.mIsUsingCarrierAggregation = true; } else { this.mIsUsingCarrierAggregation = false; } this.mRilDataRadioTechnology = rt; if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setRilDataRadioTechnology=" + mRilDataRadioTechnology); // sync to network registration state Rlog.e(LOG_TAG, "ServiceState.setRilDataRadioTechnology() called. It's encouraged to " + "use addNetworkRegistrationInfo() instead *******"); // Sync to network registration state. Always write down the WWAN transport. For AP-assisted // mode device, use addNetworkRegistrationInfo() to set the correct transport if RAT // is IWLAN. NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); Loading @@ -1367,18 +1335,32 @@ public class ServiceState implements Parcelable { .build(); addNetworkRegistrationInfo(regState); } regState.setAccessNetworkTechnology( rilRadioTechnologyToNetworkType(mRilDataRadioTechnology)); regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt)); } /** @hide */ 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 */ 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); } } } /** Loading Loading @@ -1435,12 +1417,29 @@ public class ServiceState implements Parcelable { /** @hide */ @UnsupportedAppUsage 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 */ @UnsupportedAppUsage 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 Loading Loading
telephony/java/android/telephony/DataSpecificRegistrationInfo.java +25 −7 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { * * @hide */ public final boolean isUsingCarrierAggregation; public boolean mIsUsingCarrierAggregation; /** * @hide Loading @@ -92,7 +92,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { this.isNrAvailable = isNrAvailable; this.isEnDcAvailable = isEnDcAvailable; this.mLteVopsSupportInfo = lteVops; this.isUsingCarrierAggregation = isUsingCarrierAggregation; this.mIsUsingCarrierAggregation = isUsingCarrierAggregation; } private DataSpecificRegistrationInfo(Parcel source) { Loading @@ -101,7 +101,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { isNrAvailable = source.readBoolean(); isEnDcAvailable = source.readBoolean(); mLteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source); isUsingCarrierAggregation = source.readBoolean(); mIsUsingCarrierAggregation = source.readBoolean(); } @Override Loading @@ -111,7 +111,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { dest.writeBoolean(isNrAvailable); dest.writeBoolean(isEnDcAvailable); mLteVopsSupportInfo.writeToParcel(dest, flags); dest.writeBoolean(isUsingCarrierAggregation); dest.writeBoolean(mIsUsingCarrierAggregation); } @Override Loading @@ -128,7 +128,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { .append(" isNrAvailable = " + isNrAvailable) .append(" isEnDcAvailable = " + isEnDcAvailable) .append(" " + mLteVopsSupportInfo.toString()) .append(" isUsingCarrierAggregation = " + isUsingCarrierAggregation) .append(" mIsUsingCarrierAggregation = " + mIsUsingCarrierAggregation) .append(" }") .toString(); } Loading @@ -136,7 +136,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { @Override public int hashCode() { return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable, mLteVopsSupportInfo, isUsingCarrierAggregation); mLteVopsSupportInfo, mIsUsingCarrierAggregation); } @Override Loading @@ -151,7 +151,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { && this.isNrAvailable == other.isNrAvailable && this.isEnDcAvailable == other.isEnDcAvailable && this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo) && this.isUsingCarrierAggregation == other.isUsingCarrierAggregation; && this.mIsUsingCarrierAggregation == other.mIsUsingCarrierAggregation; } public static final @NonNull Parcelable.Creator<DataSpecificRegistrationInfo> CREATOR = Loading @@ -174,4 +174,22 @@ public final class DataSpecificRegistrationInfo implements Parcelable { public LteVopsSupportInfo getLteVopsSupportInfo() { 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; } }
telephony/java/android/telephony/NetworkRegistrationInfo.java +7 −0 Original line number Diff line number Diff line Loading @@ -368,6 +368,13 @@ public final class NetworkRegistrationInfo implements Parcelable { * @hide */ 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; } Loading
telephony/java/android/telephony/ServiceState.java +75 −76 Original line number Diff line number Diff line Loading @@ -312,18 +312,6 @@ public class ServiceState implements Parcelable { private boolean mIsManualNetworkSelection; 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) private boolean mCssIndicator; Loading @@ -340,9 +328,6 @@ public class ServiceState implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) private int mCdmaEriIconMode; @UnsupportedAppUsage private boolean mIsUsingCarrierAggregation; @FrequencyRange private int mNrFrequencyRange; private int mChannelNumber; Loading Loading @@ -420,8 +405,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = s.mDataOperatorAlphaShort; mDataOperatorNumeric = s.mDataOperatorNumeric; mIsManualNetworkSelection = s.mIsManualNetworkSelection; mRilVoiceRadioTechnology = s.mRilVoiceRadioTechnology; mRilDataRadioTechnology = s.mRilDataRadioTechnology; mCssIndicator = s.mCssIndicator; mNetworkId = s.mNetworkId; mSystemId = s.mSystemId; Loading @@ -430,7 +413,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; mIsEmergencyOnly = s.mIsEmergencyOnly; mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation; mChannelNumber = s.mChannelNumber; mCellBandwidths = s.mCellBandwidths == null ? null : Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length); Loading @@ -457,8 +439,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = in.readString(); mDataOperatorNumeric = in.readString(); mIsManualNetworkSelection = in.readInt() != 0; mRilVoiceRadioTechnology = in.readInt(); mRilDataRadioTechnology = in.readInt(); mCssIndicator = (in.readInt() != 0); mNetworkId = in.readInt(); mSystemId = in.readInt(); Loading @@ -467,7 +447,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); mIsEmergencyOnly = in.readInt() != 0; mIsUsingCarrierAggregation = in.readInt() != 0; mLteEarfcnRsrpBoost = in.readInt(); mNetworkRegistrationInfos = new ArrayList<>(); in.readList(mNetworkRegistrationInfos, NetworkRegistrationInfo.class.getClassLoader()); Loading @@ -486,8 +465,6 @@ public class ServiceState implements Parcelable { out.writeString(mDataOperatorAlphaShort); out.writeString(mDataOperatorNumeric); out.writeInt(mIsManualNetworkSelection ? 1 : 0); out.writeInt(mRilVoiceRadioTechnology); out.writeInt(mRilDataRadioTechnology); out.writeInt(mCssIndicator ? 1 : 0); out.writeInt(mNetworkId); out.writeInt(mSystemId); Loading @@ -496,7 +473,6 @@ public class ServiceState implements Parcelable { out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsUsingCarrierAggregation ? 1 : 0); out.writeInt(mLteEarfcnRsrpBoost); out.writeList(mNetworkRegistrationInfos); out.writeInt(mChannelNumber); Loading Loading @@ -568,7 +544,7 @@ public class ServiceState implements Parcelable { @DuplexMode public int getDuplexMode() { // only support LTE duplex mode if (!isLte(mRilDataRadioTechnology)) { if (!isLte(getRilDataRadioTechnology())) { return DUPLEX_MODE_UNKNOWN; } Loading Loading @@ -850,8 +826,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort, mDataOperatorNumeric, mIsManualNetworkSelection, mRilVoiceRadioTechnology, mRilDataRadioTechnology, mCssIndicator, mNetworkId, mSystemId, Loading @@ -860,7 +834,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex, mCdmaEriIconMode, mIsEmergencyOnly, mIsUsingCarrierAggregation, mLteEarfcnRsrpBoost, mNetworkRegistrationInfos, mNrFrequencyRange); Loading @@ -871,7 +844,7 @@ public class ServiceState implements Parcelable { if (!(o instanceof ServiceState)) return false; ServiceState s = (ServiceState) o; return (mVoiceRegState == s.mVoiceRegState return mVoiceRegState == s.mVoiceRegState && mDataRegState == s.mDataRegState && mIsManualNetworkSelection == s.mIsManualNetworkSelection && mChannelNumber == s.mChannelNumber Loading @@ -882,8 +855,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mDataOperatorAlphaLong, s.mDataOperatorAlphaLong) && equalsHandlesNulls(mDataOperatorAlphaShort, s.mDataOperatorAlphaShort) && equalsHandlesNulls(mDataOperatorNumeric, s.mDataOperatorNumeric) && equalsHandlesNulls(mRilVoiceRadioTechnology, s.mRilVoiceRadioTechnology) && equalsHandlesNulls(mRilDataRadioTechnology, s.mRilDataRadioTechnology) && equalsHandlesNulls(mCssIndicator, s.mCssIndicator) && equalsHandlesNulls(mNetworkId, s.mNetworkId) && equalsHandlesNulls(mSystemId, s.mSystemId) Loading @@ -891,7 +862,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, s.mCdmaDefaultRoamingIndicator) && mIsEmergencyOnly == s.mIsEmergencyOnly && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation) && (mNetworkRegistrationInfos == null ? s.mNetworkRegistrationInfos == null : s.mNetworkRegistrationInfos != null && mNetworkRegistrationInfos.containsAll(s.mNetworkRegistrationInfos)) Loading Loading @@ -1035,27 +1005,27 @@ public class ServiceState implements Parcelable { .append(", mDataOperatorAlphaShort=").append(mDataOperatorAlphaShort) .append(", isManualNetworkSelection=").append(mIsManualNetworkSelection) .append(mIsManualNetworkSelection ? "(manual)" : "(automatic)") .append(", mRilVoiceRadioTechnology=").append(mRilVoiceRadioTechnology) .append("(" + rilRadioTechnologyToString(mRilVoiceRadioTechnology) + ")") .append(", mRilDataRadioTechnology=").append(mRilDataRadioTechnology) .append("(" + rilRadioTechnologyToString(mRilDataRadioTechnology) + ")") .append(", getRilVoiceRadioTechnology=").append(getRilVoiceRadioTechnology()) .append("(" + rilRadioTechnologyToString(getRilVoiceRadioTechnology()) + ")") .append(", getRilDataRadioTechnology=").append(getRilDataRadioTechnology()) .append("(" + rilRadioTechnologyToString(getRilDataRadioTechnology()) + ")") .append(", mCssIndicator=").append(mCssIndicator ? "supported" : "unsupported") .append(", mNetworkId=").append(mNetworkId) .append(", mSystemId=").append(mSystemId) .append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator) .append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator) .append(", mIsEmergencyOnly=").append(mIsEmergencyOnly) .append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation) .append(", isUsingCarrierAggregation=").append(isUsingCarrierAggregation()) .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost) .append(", mNetworkRegistrationInfos=").append(mNetworkRegistrationInfos) .append(", mNrFrequencyRange=").append(mNrFrequencyRange) .append("}").toString(); } private void setNullState(int state) { if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setNullState=" + state); mVoiceRegState = state; mDataRegState = state; private void init() { if (DBG) Rlog.d(LOG_TAG, "init"); mVoiceRegState = STATE_OUT_OF_SERVICE; mDataRegState = STATE_OUT_OF_SERVICE; mChannelNumber = -1; mCellBandwidths = new int[0]; mVoiceOperatorAlphaLong = null; Loading @@ -1065,8 +1035,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort = null; mDataOperatorNumeric = null; mIsManualNetworkSelection = false; mRilVoiceRadioTechnology = 0; mRilDataRadioTechnology = 0; mCssIndicator = false; mNetworkId = -1; mSystemId = -1; Loading @@ -1075,18 +1043,28 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; mIsEmergencyOnly = false; mIsUsingCarrierAggregation = false; mLteEarfcnRsrpBoost = 0; mNetworkRegistrationInfos = new ArrayList<>(); 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() { setNullState(STATE_OUT_OF_SERVICE); init(); } public void setStateOff() { setNullState(STATE_POWER_OFF); init(); mVoiceRegState = STATE_POWER_OFF; mDataRegState = STATE_POWER_OFF; } public void setState(int state) { Loading Loading @@ -1304,8 +1282,8 @@ public class ServiceState implements Parcelable { m.putString("data-operator-alpha-short", mDataOperatorAlphaShort); m.putString("data-operator-numeric", mDataOperatorNumeric); m.putBoolean("manual", mIsManualNetworkSelection); m.putInt("radioTechnology", mRilVoiceRadioTechnology); m.putInt("dataRadioTechnology", mRilDataRadioTechnology); m.putInt("radioTechnology", getRilVoiceRadioTechnology()); m.putInt("dataRadioTechnology", getRadioTechnology()); m.putBoolean("cssIndicator", mCssIndicator); m.putInt("networkId", mNetworkId); m.putInt("systemId", mSystemId); Loading @@ -1313,7 +1291,7 @@ public class ServiceState implements Parcelable { m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putBoolean("emergencyOnly", mIsEmergencyOnly); m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration()); m.putBoolean("isUsingCarrierAggregation", mIsUsingCarrierAggregation); m.putBoolean("isUsingCarrierAggregation", isUsingCarrierAggregation()); m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost); m.putInt("ChannelNumber", mChannelNumber); m.putIntArray("CellBandwidths", mCellBandwidths); Loading @@ -1323,13 +1301,9 @@ public class ServiceState implements Parcelable { /** @hide */ @TestApi public void setRilVoiceRadioTechnology(@RilRadioTechnology int rt) { if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { rt = RIL_RADIO_TECHNOLOGY_LTE; } this.mRilVoiceRadioTechnology = rt; // sync to network registration state Rlog.e(LOG_TAG, "ServiceState.setRilVoiceRadioTechnology() called. It's encouraged to " + "use addNetworkRegistrationInfo() instead *******"); // Sync to network registration state NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); if (regState == null) { Loading @@ -1339,24 +1313,18 @@ public class ServiceState implements Parcelable { .build(); addNetworkRegistrationInfo(regState); } regState.setAccessNetworkTechnology( rilRadioTechnologyToNetworkType(mRilVoiceRadioTechnology)); regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt)); } /** @hide */ @TestApi public void setRilDataRadioTechnology(@RilRadioTechnology int rt) { if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { rt = RIL_RADIO_TECHNOLOGY_LTE; this.mIsUsingCarrierAggregation = true; } else { this.mIsUsingCarrierAggregation = false; } this.mRilDataRadioTechnology = rt; if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setRilDataRadioTechnology=" + mRilDataRadioTechnology); // sync to network registration state Rlog.e(LOG_TAG, "ServiceState.setRilDataRadioTechnology() called. It's encouraged to " + "use addNetworkRegistrationInfo() instead *******"); // Sync to network registration state. Always write down the WWAN transport. For AP-assisted // mode device, use addNetworkRegistrationInfo() to set the correct transport if RAT // is IWLAN. NetworkRegistrationInfo regState = getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); Loading @@ -1367,18 +1335,32 @@ public class ServiceState implements Parcelable { .build(); addNetworkRegistrationInfo(regState); } regState.setAccessNetworkTechnology( rilRadioTechnologyToNetworkType(mRilDataRadioTechnology)); regState.setAccessNetworkTechnology(rilRadioTechnologyToNetworkType(rt)); } /** @hide */ 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 */ 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); } } } /** Loading Loading @@ -1435,12 +1417,29 @@ public class ServiceState implements Parcelable { /** @hide */ @UnsupportedAppUsage 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 */ @UnsupportedAppUsage 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 Loading