Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5097,6 +5097,7 @@ package android.telephony { method public int getRejectCause(); method public int getTransportType(); method public boolean isEmergencyEnabled(); method public boolean isRoaming(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.NetworkRegistrationState> CREATOR; field public static final int DOMAIN_CS = 1; // 0x1 Loading core/java/android/content/Intent.java +6 −0 Original line number Diff line number Diff line Loading @@ -3945,6 +3945,12 @@ public class Intent implements Parcelable, Cloneable { @SystemApi public static final String EXTRA_LTE_EARFCN_RSRP_BOOST = "LteEarfcnRsrpBoost"; /** * An parcelable extra used with {@link #ACTION_SERVICE_STATE} representing the service state. * @hide */ public static final String EXTRA_SERVICE_STATE = "android.intent.extra.SERVICE_STATE"; /** * The name of the extra used to define the text to be processed, as a * CharSequence. Note that this may be a styled CharSequence, so you must use Loading telephony/java/android/provider/Telephony.java +0 −1 Original line number Diff line number Diff line Loading @@ -3213,7 +3213,6 @@ public final class Telephony { values.put(CDMA_ERI_ICON_INDEX, state.getCdmaEriIconIndex()); values.put(CDMA_ERI_ICON_MODE, state.getCdmaEriIconMode()); values.put(IS_EMERGENCY_ONLY, state.isEmergencyOnly()); values.put(IS_DATA_ROAMING_FROM_REGISTRATION, state.getDataRoamingFromRegistration()); values.put(IS_USING_CARRIER_AGGREGATION, state.isUsingCarrierAggregation()); return values; } Loading telephony/java/android/telephony/NetworkRegistrationState.java +41 −3 Original line number Diff line number Diff line Loading @@ -95,6 +95,13 @@ public class NetworkRegistrationState implements Parcelable { @RegState private final int mRegState; /** * Save the {@link ServiceState.RoamingType roaming type}. it can be overridden roaming type * from resource overlay or carrier config. */ @ServiceState.RoamingType private int mRoamingType; private final int mAccessNetworkTechnology; private final int mRejectCause; Loading Loading @@ -140,6 +147,8 @@ public class NetworkRegistrationState implements Parcelable { mDomain = domain; mTransportType = transportType; mRegState = regState; mRoamingType = (regState == REG_STATE_ROAMING) ? ServiceState.ROAMING_TYPE_UNKNOWN : ServiceState.ROAMING_TYPE_NOT_ROAMING; mAccessNetworkTechnology = accessNetworkTechnology; mRejectCause = rejectCause; mAvailableServices = availableServices; Loading Loading @@ -182,6 +191,7 @@ public class NetworkRegistrationState implements Parcelable { mDomain = source.readInt(); mTransportType = source.readInt(); mRegState = source.readInt(); mRoamingType = source.readInt(); mAccessNetworkTechnology = source.readInt(); mRejectCause = source.readInt(); mEmergencyOnly = source.readBoolean(); Loading Loading @@ -210,6 +220,31 @@ public class NetworkRegistrationState implements Parcelable { return mRegState; } /** * @return {@code true} if registered on roaming network, {@code false} otherwise. */ public boolean isRoaming() { return mRoamingType != ServiceState.ROAMING_TYPE_NOT_ROAMING; } /** * Set {@link ServiceState.RoamingType roaming type}. This could override * roaming type based on resource overlay or carrier config. * @hide */ public void setRoamingType(@ServiceState.RoamingType int roamingType) { mRoamingType = roamingType; } /** * @return {@link ServiceState.RoamingType roaming type}. This could return * overridden roaming type based on resource overlay or carrier config. * @hide */ public @ServiceState.RoamingType int getRoamingType() { return mRoamingType; } /** * @return Whether emergency is enabled. */ Loading Loading @@ -280,6 +315,7 @@ public class NetworkRegistrationState implements Parcelable { .append(" domain=").append((mDomain == DOMAIN_CS) ? "CS" : "PS") .append("transportType=").append(mTransportType) .append(" regState=").append(regStateToString(mRegState)) .append(" roamingType=").append(mRoamingType) .append(" accessNetworkTechnology=") .append(TelephonyManager.getNetworkTypeName(mAccessNetworkTechnology)) .append(" rejectCause=").append(mRejectCause) Loading @@ -293,9 +329,9 @@ public class NetworkRegistrationState implements Parcelable { @Override public int hashCode() { return Objects.hash(mDomain, mTransportType, mRegState, mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices, mCellIdentity, mVoiceSpecificStates, mDataSpecificStates); return Objects.hash(mDomain, mTransportType, mRegState, mRoamingType, mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices, mCellIdentity, mVoiceSpecificStates, mDataSpecificStates); } @Override Loading @@ -310,6 +346,7 @@ public class NetworkRegistrationState implements Parcelable { return mDomain == other.mDomain && mTransportType == other.mTransportType && mRegState == other.mRegState && mRoamingType == other.mRoamingType && mAccessNetworkTechnology == other.mAccessNetworkTechnology && mRejectCause == other.mRejectCause && mEmergencyOnly == other.mEmergencyOnly Loading @@ -325,6 +362,7 @@ public class NetworkRegistrationState implements Parcelable { dest.writeInt(mDomain); dest.writeInt(mTransportType); dest.writeInt(mRegState); dest.writeInt(mRoamingType); dest.writeInt(mAccessNetworkTechnology); dest.writeInt(mRejectCause); dest.writeBoolean(mEmergencyOnly); Loading telephony/java/android/telephony/ServiceState.java +68 −80 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.content.Intent; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -200,6 +201,15 @@ public class ServiceState implements Parcelable { private int mVoiceRegState = STATE_OUT_OF_SERVICE; private int mDataRegState = STATE_OUT_OF_SERVICE; /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "ROAMING_TYPE_" }, value = { ROAMING_TYPE_NOT_ROAMING, ROAMING_TYPE_UNKNOWN, ROAMING_TYPE_DOMESTIC, ROAMING_TYPE_INTERNATIONAL }) public @interface RoamingType {} /** * Roaming type * HOME : in home network Loading Loading @@ -230,8 +240,6 @@ public class ServiceState implements Parcelable { */ public static final int UNKNOWN_ID = -1; private int mVoiceRoamingType; private int mDataRoamingType; private String mVoiceOperatorAlphaLong; private String mVoiceOperatorAlphaShort; private String mVoiceOperatorNumeric; Loading Loading @@ -261,8 +269,6 @@ public class ServiceState implements Parcelable { @UnsupportedAppUsage private int mCdmaEriIconMode; private boolean mIsDataRoamingFromRegistration; @UnsupportedAppUsage private boolean mIsUsingCarrierAggregation; Loading Loading @@ -334,8 +340,6 @@ public class ServiceState implements Parcelable { protected void copyFrom(ServiceState s) { mVoiceRegState = s.mVoiceRegState; mDataRegState = s.mDataRegState; mVoiceRoamingType = s.mVoiceRoamingType; mDataRoamingType = s.mDataRoamingType; mVoiceOperatorAlphaLong = s.mVoiceOperatorAlphaLong; mVoiceOperatorAlphaShort = s.mVoiceOperatorAlphaShort; mVoiceOperatorNumeric = s.mVoiceOperatorNumeric; Loading @@ -353,7 +357,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; mIsEmergencyOnly = s.mIsEmergencyOnly; mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration; mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation; mChannelNumber = s.mChannelNumber; mCellBandwidths = s.mCellBandwidths == null ? null : Loading @@ -369,8 +372,6 @@ public class ServiceState implements Parcelable { public ServiceState(Parcel in) { mVoiceRegState = in.readInt(); mDataRegState = in.readInt(); mVoiceRoamingType = in.readInt(); mDataRoamingType = in.readInt(); mVoiceOperatorAlphaLong = in.readString(); mVoiceOperatorAlphaShort = in.readString(); mVoiceOperatorNumeric = in.readString(); Loading @@ -388,7 +389,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); mIsEmergencyOnly = in.readInt() != 0; mIsDataRoamingFromRegistration = in.readInt() != 0; mIsUsingCarrierAggregation = in.readInt() != 0; mLteEarfcnRsrpBoost = in.readInt(); mNetworkRegistrationStates = new ArrayList<>(); Loading @@ -400,8 +400,6 @@ public class ServiceState implements Parcelable { public void writeToParcel(Parcel out, int flags) { out.writeInt(mVoiceRegState); out.writeInt(mDataRegState); out.writeInt(mVoiceRoamingType); out.writeInt(mDataRoamingType); out.writeString(mVoiceOperatorAlphaLong); out.writeString(mVoiceOperatorAlphaShort); out.writeString(mVoiceOperatorNumeric); Loading @@ -419,7 +417,6 @@ public class ServiceState implements Parcelable { out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsDataRoamingFromRegistration ? 1 : 0); out.writeInt(mIsUsingCarrierAggregation ? 1 : 0); out.writeInt(mLteEarfcnRsrpBoost); out.writeList(mNetworkRegistrationStates); Loading Loading @@ -537,17 +534,21 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public boolean getVoiceRoaming() { return mVoiceRoamingType != ROAMING_TYPE_NOT_ROAMING; return getVoiceRoamingType() != ROAMING_TYPE_NOT_ROAMING; } /** * Get current voice network roaming type * @return roaming type * @hide */ @UnsupportedAppUsage public int getVoiceRoamingType() { return mVoiceRoamingType; public @RoamingType int getVoiceRoamingType() { final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return regState.getRoamingType(); } return ROAMING_TYPE_NOT_ROAMING; } /** Loading @@ -557,19 +558,7 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public boolean getDataRoaming() { return mDataRoamingType != ROAMING_TYPE_NOT_ROAMING; } /** * Set whether data network registration state is roaming * * This should only be set to the roaming value received * once the data registration phase has completed. * @hide */ @UnsupportedAppUsage public void setDataRoamingFromRegistration(boolean dataRoaming) { mIsDataRoamingFromRegistration = dataRoaming; return getDataRoamingType() != ROAMING_TYPE_NOT_ROAMING; } /** Loading @@ -578,7 +567,12 @@ public class ServiceState implements Parcelable { * @hide */ public boolean getDataRoamingFromRegistration() { return mIsDataRoamingFromRegistration; final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return (regState.getRegState() == NetworkRegistrationState.REG_STATE_ROAMING); } return false; } /** Loading @@ -587,8 +581,13 @@ public class ServiceState implements Parcelable { * @hide */ @UnsupportedAppUsage public int getDataRoamingType() { return mDataRoamingType; public @RoamingType int getDataRoamingType() { final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return regState.getRoamingType(); } return ROAMING_TYPE_NOT_ROAMING; } /** Loading Loading @@ -761,8 +760,6 @@ public class ServiceState implements Parcelable { return Objects.hash( mVoiceRegState, mDataRegState, mVoiceRoamingType, mDataRoamingType, mChannelNumber, mCellBandwidths, mVoiceOperatorAlphaLong, Loading @@ -782,7 +779,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex, mCdmaEriIconMode, mIsEmergencyOnly, mIsDataRoamingFromRegistration, mIsUsingCarrierAggregation, mLteEarfcnRsrpBoost, mNetworkRegistrationStates); Loading @@ -796,8 +792,6 @@ public class ServiceState implements Parcelable { return (mVoiceRegState == s.mVoiceRegState && mDataRegState == s.mDataRegState && mIsManualNetworkSelection == s.mIsManualNetworkSelection && mVoiceRoamingType == s.mVoiceRoamingType && mDataRoamingType == s.mDataRoamingType && mChannelNumber == s.mChannelNumber && Arrays.equals(mCellBandwidths, s.mCellBandwidths) && equalsHandlesNulls(mVoiceOperatorAlphaLong, s.mVoiceOperatorAlphaLong) Loading @@ -815,7 +809,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, s.mCdmaDefaultRoamingIndicator) && mIsEmergencyOnly == s.mIsEmergencyOnly && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation) && (mNetworkRegistrationStates == null ? s.mNetworkRegistrationStates == null : s.mNetworkRegistrationStates != null && Loading Loading @@ -935,8 +928,6 @@ public class ServiceState implements Parcelable { .append(", mChannelNumber=").append(mChannelNumber) .append(", duplexMode()=").append(getDuplexMode()) .append(", mCellBandwidths=").append(Arrays.toString(mCellBandwidths)) .append(", mVoiceRoamingType=").append(getRoamingLogString(mVoiceRoamingType)) .append(", mDataRoamingType=").append(getRoamingLogString(mDataRoamingType)) .append(", mVoiceOperatorAlphaLong=").append(mVoiceOperatorAlphaLong) .append(", mVoiceOperatorAlphaShort=").append(mVoiceOperatorAlphaShort) .append(", mDataOperatorAlphaLong=").append(mDataOperatorAlphaLong) Loading @@ -953,7 +944,6 @@ public class ServiceState implements Parcelable { .append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator) .append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator) .append(", mIsEmergencyOnly=").append(mIsEmergencyOnly) .append(", mIsDataRoamingFromRegistration=").append(mIsDataRoamingFromRegistration) .append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation) .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost) .append(", mNetworkRegistrationStates=").append(mNetworkRegistrationStates) Loading @@ -964,8 +954,6 @@ public class ServiceState implements Parcelable { if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setNullState=" + state); mVoiceRegState = state; mDataRegState = state; mVoiceRoamingType = ROAMING_TYPE_NOT_ROAMING; mDataRoamingType = ROAMING_TYPE_NOT_ROAMING; mChannelNumber = -1; mCellBandwidths = new int[0]; mVoiceOperatorAlphaLong = null; Loading @@ -985,7 +973,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; mIsEmergencyOnly = false; mIsDataRoamingFromRegistration = false; mIsUsingCarrierAggregation = false; mLteEarfcnRsrpBoost = 0; mNetworkRegistrationStates = new ArrayList<>(); Loading Loading @@ -1031,32 +1018,50 @@ public class ServiceState implements Parcelable { } public void setRoaming(boolean roaming) { mVoiceRoamingType = (roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); mDataRoamingType = mVoiceRoamingType; setVoiceRoaming(roaming); setDataRoaming(roaming); } /** @hide */ @UnsupportedAppUsage public void setVoiceRoaming(boolean roaming) { mVoiceRoamingType = (roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); setVoiceRoamingType(roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ @UnsupportedAppUsage public void setVoiceRoamingType(int type) { mVoiceRoamingType = type; public void setVoiceRoamingType(@RoamingType int type) { NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN); if (regState == null) { regState = new NetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN, ServiceState.ROAMING_TYPE_NOT_ROAMING, TelephonyManager.NETWORK_TYPE_UNKNOWN, 0, false, null, null); addNetworkRegistrationState(regState); } regState.setRoamingType(type); } /** @hide */ @UnsupportedAppUsage public void setDataRoaming(boolean dataRoaming) { mDataRoamingType = (dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); setDataRoamingType(dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ @UnsupportedAppUsage public void setDataRoamingType(int type) { mDataRoamingType = type; public void setDataRoamingType(@RoamingType int type) { NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState == null) { regState = new NetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN, ServiceState.ROAMING_TYPE_NOT_ROAMING, TelephonyManager.NETWORK_TYPE_UNKNOWN, 0, false, null, null); addNetworkRegistrationState(regState); } regState.setRoamingType(type); } /** Loading Loading @@ -1168,30 +1173,10 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage private void setFromNotifierBundle(Bundle m) { mVoiceRegState = m.getInt("voiceRegState"); mDataRegState = m.getInt("dataRegState"); mVoiceRoamingType = m.getInt("voiceRoamingType"); mDataRoamingType = m.getInt("dataRoamingType"); mVoiceOperatorAlphaLong = m.getString("operator-alpha-long"); mVoiceOperatorAlphaShort = m.getString("operator-alpha-short"); mVoiceOperatorNumeric = m.getString("operator-numeric"); mDataOperatorAlphaLong = m.getString("data-operator-alpha-long"); mDataOperatorAlphaShort = m.getString("data-operator-alpha-short"); mDataOperatorNumeric = m.getString("data-operator-numeric"); mIsManualNetworkSelection = m.getBoolean("manual"); mRilVoiceRadioTechnology = m.getInt("radioTechnology"); mRilDataRadioTechnology = m.getInt("dataRadioTechnology"); mCssIndicator = m.getBoolean("cssIndicator"); mNetworkId = m.getInt("networkId"); mSystemId = m.getInt("systemId"); mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); mIsEmergencyOnly = m.getBoolean("emergencyOnly"); mIsDataRoamingFromRegistration = m.getBoolean("isDataRoamingFromRegistration"); mIsUsingCarrierAggregation = m.getBoolean("isUsingCarrierAggregation"); mLteEarfcnRsrpBoost = m.getInt("LteEarfcnRsrpBoost"); mChannelNumber = m.getInt("ChannelNumber"); mCellBandwidths = m.getIntArray("CellBandwidths"); ServiceState ssFromBundle = m.getParcelable(Intent.EXTRA_SERVICE_STATE); if (ssFromBundle != null) { copyFrom(ssFromBundle); } } /** Loading @@ -1202,10 +1187,13 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public void fillInNotifierBundle(Bundle m) { m.putParcelable(Intent.EXTRA_SERVICE_STATE, this); // serviceState already consists of below entries. // for backward compatibility, we continue fill in below entries. m.putInt("voiceRegState", mVoiceRegState); m.putInt("dataRegState", mDataRegState); m.putInt("voiceRoamingType", mVoiceRoamingType); m.putInt("dataRoamingType", mDataRoamingType); m.putInt("dataRoamingType", getDataRoamingType()); m.putInt("voiceRoamingType", getVoiceRoamingType()); m.putString("operator-alpha-long", mVoiceOperatorAlphaLong); m.putString("operator-alpha-short", mVoiceOperatorAlphaShort); m.putString("operator-numeric", mVoiceOperatorNumeric); Loading @@ -1221,7 +1209,7 @@ public class ServiceState implements Parcelable { m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putBoolean("emergencyOnly", mIsEmergencyOnly); m.putBoolean("isDataRoamingFromRegistration", mIsDataRoamingFromRegistration); m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration()); m.putBoolean("isUsingCarrierAggregation", mIsUsingCarrierAggregation); m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost); m.putInt("ChannelNumber", mChannelNumber); Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5097,6 +5097,7 @@ package android.telephony { method public int getRejectCause(); method public int getTransportType(); method public boolean isEmergencyEnabled(); method public boolean isRoaming(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.NetworkRegistrationState> CREATOR; field public static final int DOMAIN_CS = 1; // 0x1 Loading
core/java/android/content/Intent.java +6 −0 Original line number Diff line number Diff line Loading @@ -3945,6 +3945,12 @@ public class Intent implements Parcelable, Cloneable { @SystemApi public static final String EXTRA_LTE_EARFCN_RSRP_BOOST = "LteEarfcnRsrpBoost"; /** * An parcelable extra used with {@link #ACTION_SERVICE_STATE} representing the service state. * @hide */ public static final String EXTRA_SERVICE_STATE = "android.intent.extra.SERVICE_STATE"; /** * The name of the extra used to define the text to be processed, as a * CharSequence. Note that this may be a styled CharSequence, so you must use Loading
telephony/java/android/provider/Telephony.java +0 −1 Original line number Diff line number Diff line Loading @@ -3213,7 +3213,6 @@ public final class Telephony { values.put(CDMA_ERI_ICON_INDEX, state.getCdmaEriIconIndex()); values.put(CDMA_ERI_ICON_MODE, state.getCdmaEriIconMode()); values.put(IS_EMERGENCY_ONLY, state.isEmergencyOnly()); values.put(IS_DATA_ROAMING_FROM_REGISTRATION, state.getDataRoamingFromRegistration()); values.put(IS_USING_CARRIER_AGGREGATION, state.isUsingCarrierAggregation()); return values; } Loading
telephony/java/android/telephony/NetworkRegistrationState.java +41 −3 Original line number Diff line number Diff line Loading @@ -95,6 +95,13 @@ public class NetworkRegistrationState implements Parcelable { @RegState private final int mRegState; /** * Save the {@link ServiceState.RoamingType roaming type}. it can be overridden roaming type * from resource overlay or carrier config. */ @ServiceState.RoamingType private int mRoamingType; private final int mAccessNetworkTechnology; private final int mRejectCause; Loading Loading @@ -140,6 +147,8 @@ public class NetworkRegistrationState implements Parcelable { mDomain = domain; mTransportType = transportType; mRegState = regState; mRoamingType = (regState == REG_STATE_ROAMING) ? ServiceState.ROAMING_TYPE_UNKNOWN : ServiceState.ROAMING_TYPE_NOT_ROAMING; mAccessNetworkTechnology = accessNetworkTechnology; mRejectCause = rejectCause; mAvailableServices = availableServices; Loading Loading @@ -182,6 +191,7 @@ public class NetworkRegistrationState implements Parcelable { mDomain = source.readInt(); mTransportType = source.readInt(); mRegState = source.readInt(); mRoamingType = source.readInt(); mAccessNetworkTechnology = source.readInt(); mRejectCause = source.readInt(); mEmergencyOnly = source.readBoolean(); Loading Loading @@ -210,6 +220,31 @@ public class NetworkRegistrationState implements Parcelable { return mRegState; } /** * @return {@code true} if registered on roaming network, {@code false} otherwise. */ public boolean isRoaming() { return mRoamingType != ServiceState.ROAMING_TYPE_NOT_ROAMING; } /** * Set {@link ServiceState.RoamingType roaming type}. This could override * roaming type based on resource overlay or carrier config. * @hide */ public void setRoamingType(@ServiceState.RoamingType int roamingType) { mRoamingType = roamingType; } /** * @return {@link ServiceState.RoamingType roaming type}. This could return * overridden roaming type based on resource overlay or carrier config. * @hide */ public @ServiceState.RoamingType int getRoamingType() { return mRoamingType; } /** * @return Whether emergency is enabled. */ Loading Loading @@ -280,6 +315,7 @@ public class NetworkRegistrationState implements Parcelable { .append(" domain=").append((mDomain == DOMAIN_CS) ? "CS" : "PS") .append("transportType=").append(mTransportType) .append(" regState=").append(regStateToString(mRegState)) .append(" roamingType=").append(mRoamingType) .append(" accessNetworkTechnology=") .append(TelephonyManager.getNetworkTypeName(mAccessNetworkTechnology)) .append(" rejectCause=").append(mRejectCause) Loading @@ -293,9 +329,9 @@ public class NetworkRegistrationState implements Parcelable { @Override public int hashCode() { return Objects.hash(mDomain, mTransportType, mRegState, mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices, mCellIdentity, mVoiceSpecificStates, mDataSpecificStates); return Objects.hash(mDomain, mTransportType, mRegState, mRoamingType, mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices, mCellIdentity, mVoiceSpecificStates, mDataSpecificStates); } @Override Loading @@ -310,6 +346,7 @@ public class NetworkRegistrationState implements Parcelable { return mDomain == other.mDomain && mTransportType == other.mTransportType && mRegState == other.mRegState && mRoamingType == other.mRoamingType && mAccessNetworkTechnology == other.mAccessNetworkTechnology && mRejectCause == other.mRejectCause && mEmergencyOnly == other.mEmergencyOnly Loading @@ -325,6 +362,7 @@ public class NetworkRegistrationState implements Parcelable { dest.writeInt(mDomain); dest.writeInt(mTransportType); dest.writeInt(mRegState); dest.writeInt(mRoamingType); dest.writeInt(mAccessNetworkTechnology); dest.writeInt(mRejectCause); dest.writeBoolean(mEmergencyOnly); Loading
telephony/java/android/telephony/ServiceState.java +68 −80 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.content.Intent; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -200,6 +201,15 @@ public class ServiceState implements Parcelable { private int mVoiceRegState = STATE_OUT_OF_SERVICE; private int mDataRegState = STATE_OUT_OF_SERVICE; /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "ROAMING_TYPE_" }, value = { ROAMING_TYPE_NOT_ROAMING, ROAMING_TYPE_UNKNOWN, ROAMING_TYPE_DOMESTIC, ROAMING_TYPE_INTERNATIONAL }) public @interface RoamingType {} /** * Roaming type * HOME : in home network Loading Loading @@ -230,8 +240,6 @@ public class ServiceState implements Parcelable { */ public static final int UNKNOWN_ID = -1; private int mVoiceRoamingType; private int mDataRoamingType; private String mVoiceOperatorAlphaLong; private String mVoiceOperatorAlphaShort; private String mVoiceOperatorNumeric; Loading Loading @@ -261,8 +269,6 @@ public class ServiceState implements Parcelable { @UnsupportedAppUsage private int mCdmaEriIconMode; private boolean mIsDataRoamingFromRegistration; @UnsupportedAppUsage private boolean mIsUsingCarrierAggregation; Loading Loading @@ -334,8 +340,6 @@ public class ServiceState implements Parcelable { protected void copyFrom(ServiceState s) { mVoiceRegState = s.mVoiceRegState; mDataRegState = s.mDataRegState; mVoiceRoamingType = s.mVoiceRoamingType; mDataRoamingType = s.mDataRoamingType; mVoiceOperatorAlphaLong = s.mVoiceOperatorAlphaLong; mVoiceOperatorAlphaShort = s.mVoiceOperatorAlphaShort; mVoiceOperatorNumeric = s.mVoiceOperatorNumeric; Loading @@ -353,7 +357,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; mIsEmergencyOnly = s.mIsEmergencyOnly; mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration; mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation; mChannelNumber = s.mChannelNumber; mCellBandwidths = s.mCellBandwidths == null ? null : Loading @@ -369,8 +372,6 @@ public class ServiceState implements Parcelable { public ServiceState(Parcel in) { mVoiceRegState = in.readInt(); mDataRegState = in.readInt(); mVoiceRoamingType = in.readInt(); mDataRoamingType = in.readInt(); mVoiceOperatorAlphaLong = in.readString(); mVoiceOperatorAlphaShort = in.readString(); mVoiceOperatorNumeric = in.readString(); Loading @@ -388,7 +389,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); mIsEmergencyOnly = in.readInt() != 0; mIsDataRoamingFromRegistration = in.readInt() != 0; mIsUsingCarrierAggregation = in.readInt() != 0; mLteEarfcnRsrpBoost = in.readInt(); mNetworkRegistrationStates = new ArrayList<>(); Loading @@ -400,8 +400,6 @@ public class ServiceState implements Parcelable { public void writeToParcel(Parcel out, int flags) { out.writeInt(mVoiceRegState); out.writeInt(mDataRegState); out.writeInt(mVoiceRoamingType); out.writeInt(mDataRoamingType); out.writeString(mVoiceOperatorAlphaLong); out.writeString(mVoiceOperatorAlphaShort); out.writeString(mVoiceOperatorNumeric); Loading @@ -419,7 +417,6 @@ public class ServiceState implements Parcelable { out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsDataRoamingFromRegistration ? 1 : 0); out.writeInt(mIsUsingCarrierAggregation ? 1 : 0); out.writeInt(mLteEarfcnRsrpBoost); out.writeList(mNetworkRegistrationStates); Loading Loading @@ -537,17 +534,21 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public boolean getVoiceRoaming() { return mVoiceRoamingType != ROAMING_TYPE_NOT_ROAMING; return getVoiceRoamingType() != ROAMING_TYPE_NOT_ROAMING; } /** * Get current voice network roaming type * @return roaming type * @hide */ @UnsupportedAppUsage public int getVoiceRoamingType() { return mVoiceRoamingType; public @RoamingType int getVoiceRoamingType() { final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return regState.getRoamingType(); } return ROAMING_TYPE_NOT_ROAMING; } /** Loading @@ -557,19 +558,7 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public boolean getDataRoaming() { return mDataRoamingType != ROAMING_TYPE_NOT_ROAMING; } /** * Set whether data network registration state is roaming * * This should only be set to the roaming value received * once the data registration phase has completed. * @hide */ @UnsupportedAppUsage public void setDataRoamingFromRegistration(boolean dataRoaming) { mIsDataRoamingFromRegistration = dataRoaming; return getDataRoamingType() != ROAMING_TYPE_NOT_ROAMING; } /** Loading @@ -578,7 +567,12 @@ public class ServiceState implements Parcelable { * @hide */ public boolean getDataRoamingFromRegistration() { return mIsDataRoamingFromRegistration; final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return (regState.getRegState() == NetworkRegistrationState.REG_STATE_ROAMING); } return false; } /** Loading @@ -587,8 +581,13 @@ public class ServiceState implements Parcelable { * @hide */ @UnsupportedAppUsage public int getDataRoamingType() { return mDataRoamingType; public @RoamingType int getDataRoamingType() { final NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState != null) { return regState.getRoamingType(); } return ROAMING_TYPE_NOT_ROAMING; } /** Loading Loading @@ -761,8 +760,6 @@ public class ServiceState implements Parcelable { return Objects.hash( mVoiceRegState, mDataRegState, mVoiceRoamingType, mDataRoamingType, mChannelNumber, mCellBandwidths, mVoiceOperatorAlphaLong, Loading @@ -782,7 +779,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex, mCdmaEriIconMode, mIsEmergencyOnly, mIsDataRoamingFromRegistration, mIsUsingCarrierAggregation, mLteEarfcnRsrpBoost, mNetworkRegistrationStates); Loading @@ -796,8 +792,6 @@ public class ServiceState implements Parcelable { return (mVoiceRegState == s.mVoiceRegState && mDataRegState == s.mDataRegState && mIsManualNetworkSelection == s.mIsManualNetworkSelection && mVoiceRoamingType == s.mVoiceRoamingType && mDataRoamingType == s.mDataRoamingType && mChannelNumber == s.mChannelNumber && Arrays.equals(mCellBandwidths, s.mCellBandwidths) && equalsHandlesNulls(mVoiceOperatorAlphaLong, s.mVoiceOperatorAlphaLong) Loading @@ -815,7 +809,6 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, s.mCdmaDefaultRoamingIndicator) && mIsEmergencyOnly == s.mIsEmergencyOnly && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation) && (mNetworkRegistrationStates == null ? s.mNetworkRegistrationStates == null : s.mNetworkRegistrationStates != null && Loading Loading @@ -935,8 +928,6 @@ public class ServiceState implements Parcelable { .append(", mChannelNumber=").append(mChannelNumber) .append(", duplexMode()=").append(getDuplexMode()) .append(", mCellBandwidths=").append(Arrays.toString(mCellBandwidths)) .append(", mVoiceRoamingType=").append(getRoamingLogString(mVoiceRoamingType)) .append(", mDataRoamingType=").append(getRoamingLogString(mDataRoamingType)) .append(", mVoiceOperatorAlphaLong=").append(mVoiceOperatorAlphaLong) .append(", mVoiceOperatorAlphaShort=").append(mVoiceOperatorAlphaShort) .append(", mDataOperatorAlphaLong=").append(mDataOperatorAlphaLong) Loading @@ -953,7 +944,6 @@ public class ServiceState implements Parcelable { .append(", mCdmaRoamingIndicator=").append(mCdmaRoamingIndicator) .append(", mCdmaDefaultRoamingIndicator=").append(mCdmaDefaultRoamingIndicator) .append(", mIsEmergencyOnly=").append(mIsEmergencyOnly) .append(", mIsDataRoamingFromRegistration=").append(mIsDataRoamingFromRegistration) .append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation) .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost) .append(", mNetworkRegistrationStates=").append(mNetworkRegistrationStates) Loading @@ -964,8 +954,6 @@ public class ServiceState implements Parcelable { if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setNullState=" + state); mVoiceRegState = state; mDataRegState = state; mVoiceRoamingType = ROAMING_TYPE_NOT_ROAMING; mDataRoamingType = ROAMING_TYPE_NOT_ROAMING; mChannelNumber = -1; mCellBandwidths = new int[0]; mVoiceOperatorAlphaLong = null; Loading @@ -985,7 +973,6 @@ public class ServiceState implements Parcelable { mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; mIsEmergencyOnly = false; mIsDataRoamingFromRegistration = false; mIsUsingCarrierAggregation = false; mLteEarfcnRsrpBoost = 0; mNetworkRegistrationStates = new ArrayList<>(); Loading Loading @@ -1031,32 +1018,50 @@ public class ServiceState implements Parcelable { } public void setRoaming(boolean roaming) { mVoiceRoamingType = (roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); mDataRoamingType = mVoiceRoamingType; setVoiceRoaming(roaming); setDataRoaming(roaming); } /** @hide */ @UnsupportedAppUsage public void setVoiceRoaming(boolean roaming) { mVoiceRoamingType = (roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); setVoiceRoamingType(roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ @UnsupportedAppUsage public void setVoiceRoamingType(int type) { mVoiceRoamingType = type; public void setVoiceRoamingType(@RoamingType int type) { NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN); if (regState == null) { regState = new NetworkRegistrationState( NetworkRegistrationState.DOMAIN_CS, AccessNetworkConstants.TransportType.WWAN, ServiceState.ROAMING_TYPE_NOT_ROAMING, TelephonyManager.NETWORK_TYPE_UNKNOWN, 0, false, null, null); addNetworkRegistrationState(regState); } regState.setRoamingType(type); } /** @hide */ @UnsupportedAppUsage public void setDataRoaming(boolean dataRoaming) { mDataRoamingType = (dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); setDataRoamingType(dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ @UnsupportedAppUsage public void setDataRoamingType(int type) { mDataRoamingType = type; public void setDataRoamingType(@RoamingType int type) { NetworkRegistrationState regState = getNetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN); if (regState == null) { regState = new NetworkRegistrationState( NetworkRegistrationState.DOMAIN_PS, AccessNetworkConstants.TransportType.WWAN, ServiceState.ROAMING_TYPE_NOT_ROAMING, TelephonyManager.NETWORK_TYPE_UNKNOWN, 0, false, null, null); addNetworkRegistrationState(regState); } regState.setRoamingType(type); } /** Loading Loading @@ -1168,30 +1173,10 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage private void setFromNotifierBundle(Bundle m) { mVoiceRegState = m.getInt("voiceRegState"); mDataRegState = m.getInt("dataRegState"); mVoiceRoamingType = m.getInt("voiceRoamingType"); mDataRoamingType = m.getInt("dataRoamingType"); mVoiceOperatorAlphaLong = m.getString("operator-alpha-long"); mVoiceOperatorAlphaShort = m.getString("operator-alpha-short"); mVoiceOperatorNumeric = m.getString("operator-numeric"); mDataOperatorAlphaLong = m.getString("data-operator-alpha-long"); mDataOperatorAlphaShort = m.getString("data-operator-alpha-short"); mDataOperatorNumeric = m.getString("data-operator-numeric"); mIsManualNetworkSelection = m.getBoolean("manual"); mRilVoiceRadioTechnology = m.getInt("radioTechnology"); mRilDataRadioTechnology = m.getInt("dataRadioTechnology"); mCssIndicator = m.getBoolean("cssIndicator"); mNetworkId = m.getInt("networkId"); mSystemId = m.getInt("systemId"); mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); mIsEmergencyOnly = m.getBoolean("emergencyOnly"); mIsDataRoamingFromRegistration = m.getBoolean("isDataRoamingFromRegistration"); mIsUsingCarrierAggregation = m.getBoolean("isUsingCarrierAggregation"); mLteEarfcnRsrpBoost = m.getInt("LteEarfcnRsrpBoost"); mChannelNumber = m.getInt("ChannelNumber"); mCellBandwidths = m.getIntArray("CellBandwidths"); ServiceState ssFromBundle = m.getParcelable(Intent.EXTRA_SERVICE_STATE); if (ssFromBundle != null) { copyFrom(ssFromBundle); } } /** Loading @@ -1202,10 +1187,13 @@ public class ServiceState implements Parcelable { */ @UnsupportedAppUsage public void fillInNotifierBundle(Bundle m) { m.putParcelable(Intent.EXTRA_SERVICE_STATE, this); // serviceState already consists of below entries. // for backward compatibility, we continue fill in below entries. m.putInt("voiceRegState", mVoiceRegState); m.putInt("dataRegState", mDataRegState); m.putInt("voiceRoamingType", mVoiceRoamingType); m.putInt("dataRoamingType", mDataRoamingType); m.putInt("dataRoamingType", getDataRoamingType()); m.putInt("voiceRoamingType", getVoiceRoamingType()); m.putString("operator-alpha-long", mVoiceOperatorAlphaLong); m.putString("operator-alpha-short", mVoiceOperatorAlphaShort); m.putString("operator-numeric", mVoiceOperatorNumeric); Loading @@ -1221,7 +1209,7 @@ public class ServiceState implements Parcelable { m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putBoolean("emergencyOnly", mIsEmergencyOnly); m.putBoolean("isDataRoamingFromRegistration", mIsDataRoamingFromRegistration); m.putBoolean("isDataRoamingFromRegistration", getDataRoamingFromRegistration()); m.putBoolean("isUsingCarrierAggregation", mIsUsingCarrierAggregation); m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost); m.putInt("ChannelNumber", mChannelNumber); Loading