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

Commit c49ec8d1 authored by Pengquan Meng's avatar Pengquan Meng Committed by Gerrit Code Review
Browse files

Merge "Add 5G NSA status to ServiceSate"

parents 992aafb2 6aa5213e
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;