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

Commit c7b58dec authored by Pengquan Meng's avatar Pengquan Meng Committed by android-build-merger
Browse files

Merge "Add 5G NSA status to ServiceSate"

am: c49ec8d1

Change-Id: I21ac574bb169be8bd1980129b3a4a648bbc4d07a
parents f3d18310 c49ec8d1
Loading
Loading
Loading
Loading
+73 −2
Original line number Diff line number Diff line
@@ -70,6 +70,43 @@ public class NetworkRegistrationState implements Parcelable {
    /** Registered on roaming network */
    public static final int REG_STATE_ROAMING               = 5;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(prefix = "NR_STATUS_",
            value = {NR_STATUS_NONE, NR_STATUS_RESTRICTED, NR_STATUS_NOT_RESTRICTED,
                    NR_STATUS_CONNECTED})
    public @interface NRStatus {}

    /**
     * The device isn't camped on an LTE cell or the LTE cell doesn't support E-UTRA-NR
     * Dual Connectivity(EN-DC).
     * @hide
     */
    public static final int NR_STATUS_NONE = -1;

    /**
     * The device is camped on an LTE cell that supports E-UTRA-NR Dual Connectivity(EN-DC) but
     * either the use of dual connectivity with NR(DCNR) is restricted or NR is not supported by
     * the selected PLMN.
     * @hide
     */
    public static final int NR_STATUS_RESTRICTED = 1;

    /**
     * The device is camped on an LTE cell that supports E-UTRA-NR Dual Connectivity(EN-DC) and both
     * the use of dual connectivity with NR(DCNR) is not restricted and NR is supported by the
     * selected PLMN.
     * @hide
     */
    public static final int NR_STATUS_NOT_RESTRICTED = 2;

    /**
     * The device is camped on an LTE cell that supports E-UTRA-NR Dual Connectivity(EN-DC) and
     * also connected to at least one 5G cell as a secondary serving cell.
     * @hide
     */
    public static final int NR_STATUS_CONNECTED = 3;

    /**
     * Supported service type
     * @hide
@@ -104,6 +141,9 @@ public class NetworkRegistrationState implements Parcelable {

    private int mAccessNetworkTechnology;

    @NRStatus
    private int mNrStatus;

    private final int mRejectCause;

    private final boolean mEmergencyOnly;
@@ -154,6 +194,7 @@ public class NetworkRegistrationState implements Parcelable {
        mAvailableServices = availableServices;
        mCellIdentity = cellIdentity;
        mEmergencyOnly = emergencyOnly;
        mNrStatus = NR_STATUS_NONE;
    }

    /**
@@ -200,6 +241,7 @@ public class NetworkRegistrationState implements Parcelable {
                VoiceSpecificRegistrationStates.class.getClassLoader());
        mDataSpecificStates = source.readParcelable(
                DataSpecificRegistrationStates.class.getClassLoader());
        mNrStatus = source.readInt();
    }

    /**
@@ -212,6 +254,19 @@ public class NetworkRegistrationState implements Parcelable {
     */
    public @Domain int getDomain() { return mDomain; }

    /**
     * @return the 5G NR connection status.
     * @hide
     */
    public @NRStatus int getNrStatus() {
        return mNrStatus;
    }

    /** @hide */
    public void setNrStatus(@NRStatus int nrStatus) {
        mNrStatus = nrStatus;
    }

    /**
     * @return The registration state.
     */
@@ -315,6 +370,19 @@ public class NetworkRegistrationState implements Parcelable {
        return "Unknown reg state " + regState;
    }

    private static String nrStatusToString(@NRStatus int nrStatus) {
        switch (nrStatus) {
            case NR_STATUS_RESTRICTED:
                return "RESTRICTED";
            case NR_STATUS_NOT_RESTRICTED:
                return "NOT_RESTRICTED";
            case NR_STATUS_CONNECTED:
                return "CONNECTED";
            default:
                return "NONE";
        }
    }

    @Override
    public String toString() {
        return new StringBuilder("NetworkRegistrationState{")
@@ -330,6 +398,7 @@ public class NetworkRegistrationState implements Parcelable {
                .append(" cellIdentity=").append(mCellIdentity)
                .append(" voiceSpecificStates=").append(mVoiceSpecificStates)
                .append(" dataSpecificStates=").append(mDataSpecificStates)
                .append(" nrStatus=").append(nrStatusToString(mNrStatus))
                .append("}").toString();
    }

@@ -337,7 +406,7 @@ public class NetworkRegistrationState implements Parcelable {
    public int hashCode() {
        return Objects.hash(mDomain, mTransportType, mRegState, mRoamingType,
                mAccessNetworkTechnology, mRejectCause, mEmergencyOnly, mAvailableServices,
                mCellIdentity, mVoiceSpecificStates, mDataSpecificStates);
                mCellIdentity, mVoiceSpecificStates, mDataSpecificStates, mNrStatus);
    }

    @Override
@@ -359,7 +428,8 @@ public class NetworkRegistrationState implements Parcelable {
                && Arrays.equals(mAvailableServices, other.mAvailableServices)
                && Objects.equals(mCellIdentity, other.mCellIdentity)
                && Objects.equals(mVoiceSpecificStates, other.mVoiceSpecificStates)
                && Objects.equals(mDataSpecificStates, other.mDataSpecificStates);
                && Objects.equals(mDataSpecificStates, other.mDataSpecificStates)
                && mNrStatus == other.mNrStatus;
    }

    @Override
@@ -375,6 +445,7 @@ public class NetworkRegistrationState implements Parcelable {
        dest.writeParcelable(mCellIdentity, 0);
        dest.writeParcelable(mVoiceSpecificStates, 0);
        dest.writeParcelable(mDataSpecificStates, 0);
        dest.writeInt(mNrStatus);
    }

    public static final Parcelable.Creator<NetworkRegistrationState> CREATOR =
+67 −3
Original line number Diff line number Diff line
@@ -83,7 +83,45 @@ public class ServiceState implements Parcelable {

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({DUPLEX_MODE_UNKNOWN, DUPLEX_MODE_FDD, DUPLEX_MODE_TDD})
    @IntDef(prefix = "FREQUENCY_RANGE_",
            value = {FREQUENCY_RANGE_UNKNOWN, FREQUENCY_RANGE_LOW, FREQUENCY_RANGE_MID,
                    FREQUENCY_RANGE_HIGH, FREQUENCY_RANGE_MMWAVE})
    public @interface FrequencyRange {}

    /**
     * Indicates frequency range is unknown.
     * @hide
     */
    public static final int FREQUENCY_RANGE_UNKNOWN = -1;

    /**
     * Indicates the frequency range is below 1GHz.
     * @hide
     */
    public static final int FREQUENCY_RANGE_LOW = 1;

    /**
     * Indicates the frequency range is between 1GHz to 3GHz.
     * @hide
     */
    public static final int FREQUENCY_RANGE_MID = 2;

    /**
     * Indicates the frequency range is between 3GHz and 6GHz.
     * @hide
     */
    public static final int FREQUENCY_RANGE_HIGH = 3;

    /**
     * Indicates the frequency range is above 6GHz (millimeter wave frequency).
     * @hide
     */
    public static final int FREQUENCY_RANGE_MMWAVE = 4;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(prefix = "DUPLEX_MODE_",
            value = {DUPLEX_MODE_UNKNOWN, DUPLEX_MODE_FDD, DUPLEX_MODE_TDD})
    public @interface DuplexMode {}

    /**
@@ -283,6 +321,8 @@ public class ServiceState implements Parcelable {
    @UnsupportedAppUsage
    private boolean mIsUsingCarrierAggregation;

    @FrequencyRange
    private int mNrFrequencyRange;
    private int mChannelNumber;
    private int[] mCellBandwidths = new int[0];

@@ -375,6 +415,7 @@ public class ServiceState implements Parcelable {
        mLteEarfcnRsrpBoost = s.mLteEarfcnRsrpBoost;
        mNetworkRegistrationStates = s.mNetworkRegistrationStates == null ? null :
                new ArrayList<>(s.mNetworkRegistrationStates);
        mNrFrequencyRange = s.mNrFrequencyRange;
    }

    /**
@@ -406,6 +447,7 @@ public class ServiceState implements Parcelable {
        in.readList(mNetworkRegistrationStates, NetworkRegistrationState.class.getClassLoader());
        mChannelNumber = in.readInt();
        mCellBandwidths = in.createIntArray();
        mNrFrequencyRange = in.readInt();
    }

    public void writeToParcel(Parcel out, int flags) {
@@ -433,6 +475,7 @@ public class ServiceState implements Parcelable {
        out.writeList(mNetworkRegistrationStates);
        out.writeInt(mChannelNumber);
        out.writeIntArray(mCellBandwidths);
        out.writeInt(mNrFrequencyRange);
    }

    public int describeContents() {
@@ -792,7 +835,8 @@ public class ServiceState implements Parcelable {
                mIsEmergencyOnly,
                mIsUsingCarrierAggregation,
                mLteEarfcnRsrpBoost,
                mNetworkRegistrationStates);
                mNetworkRegistrationStates,
                mNrFrequencyRange);
    }

    @Override
@@ -823,7 +867,8 @@ public class ServiceState implements Parcelable {
                && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation)
                && (mNetworkRegistrationStates == null ? s.mNetworkRegistrationStates == null :
                        s.mNetworkRegistrationStates != null &&
                        mNetworkRegistrationStates.containsAll(s.mNetworkRegistrationStates));
                        mNetworkRegistrationStates.containsAll(s.mNetworkRegistrationStates))
                && mNrFrequencyRange == s.mNrFrequencyRange;
    }

    /**
@@ -958,6 +1003,7 @@ public class ServiceState implements Parcelable {
            .append(", mIsUsingCarrierAggregation=").append(mIsUsingCarrierAggregation)
            .append(", mLteEarfcnRsrpBoost=").append(mLteEarfcnRsrpBoost)
            .append(", mNetworkRegistrationStates=").append(mNetworkRegistrationStates)
            .append(", mNrFrequencyRange=").append(mNrFrequencyRange)
            .append("}").toString();
    }

@@ -987,6 +1033,7 @@ public class ServiceState implements Parcelable {
        mIsUsingCarrierAggregation = false;
        mLteEarfcnRsrpBoost = 0;
        mNetworkRegistrationStates = new ArrayList<>();
        mNrFrequencyRange = FREQUENCY_RANGE_UNKNOWN;
    }

    public void setStateOutOfService() {
@@ -1225,6 +1272,7 @@ public class ServiceState implements Parcelable {
        m.putInt("LteEarfcnRsrpBoost", mLteEarfcnRsrpBoost);
        m.putInt("ChannelNumber", mChannelNumber);
        m.putIntArray("CellBandwidths", mCellBandwidths);
        m.putInt("mNrFrequencyRange", mNrFrequencyRange);
    }

    /** @hide */
@@ -1288,6 +1336,22 @@ public class ServiceState implements Parcelable {
        mIsUsingCarrierAggregation = ca;
    }

    /**
     * @return the frequency range of 5G NR.
     * @hide
     */
    public @FrequencyRange int getNrFrequencyRange() {
        return mNrFrequencyRange;
    }

    /**
     * @param nrFrequencyRange the frequency range of 5G NR.
     * @hide
     */
    public void setNrFrequencyRange(@FrequencyRange int nrFrequencyRange) {
        mNrFrequencyRange = nrFrequencyRange;
    }

    /** @hide */
    public int getLteEarfcnRsrpBoost() {
        return mLteEarfcnRsrpBoost;