diff options
author | Jack Yu <jackyu@google.com> | 2019-04-03 22:02:30 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-04-03 22:02:30 +0000 |
commit | 1a07f6411b2e7fd0a17737aea5d963c4022a05fe (patch) | |
tree | 0e8ee2ea1a0e341a678fb8ced7c0a9d76bcb8a5b | |
parent | 7988315b01b45e4e9535e5448b00baec23d3f93d (diff) | |
parent | 5ff5ab5649644eded4f662303fdacee08aaad044 (diff) | |
download | android_frameworks_base-1a07f6411b2e7fd0a17737aea5d963c4022a05fe.tar.gz android_frameworks_base-1a07f6411b2e7fd0a17737aea5d963c4022a05fe.tar.bz2 android_frameworks_base-1a07f6411b2e7fd0a17737aea5d963c4022a05fe.zip |
Merge "Removed data and voice RAT from service state"
3 files changed, 107 insertions, 83 deletions
diff --git a/telephony/java/android/telephony/DataSpecificRegistrationInfo.java b/telephony/java/android/telephony/DataSpecificRegistrationInfo.java index 465c2b1be3d..2cb369d2802 100644 --- a/telephony/java/android/telephony/DataSpecificRegistrationInfo.java +++ b/telephony/java/android/telephony/DataSpecificRegistrationInfo.java @@ -78,7 +78,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable { * * @hide */ - public final boolean isUsingCarrierAggregation; + public boolean mIsUsingCarrierAggregation; /** * @hide @@ -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) { @@ -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 @@ -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 @@ -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(); } @@ -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 @@ -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 = @@ -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; + } } diff --git a/telephony/java/android/telephony/NetworkRegistrationInfo.java b/telephony/java/android/telephony/NetworkRegistrationInfo.java index 2bb02e7af1e..7b9f6d5eb8a 100644 --- a/telephony/java/android/telephony/NetworkRegistrationInfo.java +++ b/telephony/java/android/telephony/NetworkRegistrationInfo.java @@ -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; } diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index a794ba12f20..d2c07059340 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -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; @@ -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; @@ -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; @@ -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); @@ -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(); @@ -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()); @@ -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); @@ -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); @@ -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; } @@ -850,8 +826,6 @@ public class ServiceState implements Parcelable { mDataOperatorAlphaShort, mDataOperatorNumeric, mIsManualNetworkSelection, - mRilVoiceRadioTechnology, - mRilDataRadioTechnology, mCssIndicator, mNetworkId, mSystemId, @@ -860,7 +834,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex, mCdmaEriIconMode, mIsEmergencyOnly, - mIsUsingCarrierAggregation, mLteEarfcnRsrpBoost, mNetworkRegistrationInfos, mNrFrequencyRange); @@ -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 @@ -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) @@ -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)) @@ -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; @@ -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; @@ -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) { @@ -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); @@ -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); @@ -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) { @@ -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); @@ -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); + } + } } /** @@ -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 |