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

Commit 47463367 authored by Sarah Chin's avatar Sarah Chin Committed by Android (Google) Code Review
Browse files

Merge "Add getTimingAdvance API to NR signal strength"

parents f9f0e876 34d8353a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -42834,6 +42834,7 @@ package android.telephony {
    method public int getSsRsrp();
    method public int getSsRsrq();
    method public int getSsSinr();
    method @IntRange(from=0, to=1282) public int getTimingAdvanceMicros();
    method public void writeToParcel(android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthNr> CREATOR;
  }
+37 −4
Original line number Diff line number Diff line
@@ -155,6 +155,16 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
     */
    private int mParametersUseForLevel;

    /**
     * Timing advance value for a one way trip from cell to device in microseconds.
     * Approximate distance is calculated using 300m/us * timingAdvance.
     *
     * Reference: 3GPP TS 36.213 section 4.2.3.
     *
     * Range: [0, 1282]
     */
    private int mTimingAdvance;

    /** @hide */
    public CellSignalStrengthNr() {
        setDefaultValues();
@@ -169,10 +179,11 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
     * @param ssRsrp SS reference signal received power.
     * @param ssRsrq SS reference signal received quality.
     * @param ssSinr SS signal-to-noise and interference ratio.
     * @param timingAdvance Timing advance.
     * @hide
     */
    public CellSignalStrengthNr(int csiRsrp, int csiRsrq, int csiSinr, int csiCqiTableIndex,
            List<Byte> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr) {
            List<Byte> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr, int timingAdvance) {
        mCsiRsrp = inRangeOrUnavailable(csiRsrp, -156, -31);
        mCsiRsrq = inRangeOrUnavailable(csiRsrq, -20, -3);
        mCsiSinr = inRangeOrUnavailable(csiSinr, -23, 23);
@@ -183,6 +194,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        mSsRsrp = inRangeOrUnavailable(ssRsrp, -156, -31);
        mSsRsrq = inRangeOrUnavailable(ssRsrq, -43, 20);
        mSsSinr = inRangeOrUnavailable(ssSinr, -23, 40);
        mTimingAdvance = inRangeOrUnavailable(timingAdvance, 0, 1282);
        updateLevel(null, null);
    }

@@ -198,7 +210,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
    public CellSignalStrengthNr(
            int csiRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr) {
        this(csiRsrp, csiRsrq, csiSinr, CellInfo.UNAVAILABLE, Collections.emptyList(),
                ssRsrp, ssRsrq, ssSinr);
                ssRsrp, ssRsrq, ssSinr, CellInfo.UNAVAILABLE);
    }

    /**
@@ -302,6 +314,22 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        return mCsiCqiReport;
    }

    /**
     * Get the timing advance value for a one way trip from cell to device for NR in microseconds.
     * {@link android.telephony.CellInfo#UNAVAILABLE} is reported when there is no
     * active RRC connection.
     *
     * Reference: 3GPP TS 36.213 section 4.2.3.
     * Range: 0 us to 1282 us.
     *
     * @return the NR timing advance if available or
     *         {@link android.telephony.CellInfo#UNAVAILABLE} if unavailable.
     */
    @IntRange(from = 0, to = 1282)
    public int getTimingAdvanceMicros() {
        return mTimingAdvance;
    }

    @Override
    public int describeContents() {
        return 0;
@@ -319,6 +347,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        dest.writeInt(mSsRsrq);
        dest.writeInt(mSsSinr);
        dest.writeInt(mLevel);
        dest.writeInt(mTimingAdvance);
    }

    private CellSignalStrengthNr(Parcel in) {
@@ -331,6 +360,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        mSsRsrq = in.readInt();
        mSsSinr = in.readInt();
        mLevel = in.readInt();
        mTimingAdvance = in.readInt();
    }

    /** @hide */
@@ -346,6 +376,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        mSsSinr = CellInfo.UNAVAILABLE;
        mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
        mParametersUseForLevel = USE_SSRSRP;
        mTimingAdvance = CellInfo.UNAVAILABLE;
    }

    /** {@inheritDoc} */
@@ -495,6 +526,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
        mSsSinr = s.mSsSinr;
        mLevel = s.mLevel;
        mParametersUseForLevel = s.mParametersUseForLevel;
        mTimingAdvance = s.mTimingAdvance;
    }

    /** @hide */
@@ -506,7 +538,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
    @Override
    public int hashCode() {
        return Objects.hash(mCsiRsrp, mCsiRsrq, mCsiSinr, mCsiCqiTableIndex,
                mCsiCqiReport, mSsRsrp, mSsRsrq, mSsSinr, mLevel);
                mCsiCqiReport, mSsRsrp, mSsRsrq, mSsSinr, mLevel, mTimingAdvance);
    }

    private static final CellSignalStrengthNr sInvalid = new CellSignalStrengthNr();
@@ -525,7 +557,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
                    && mCsiCqiTableIndex == o.mCsiCqiTableIndex
                    && mCsiCqiReport.equals(o.mCsiCqiReport)
                    && mSsRsrp == o.mSsRsrp && mSsRsrq == o.mSsRsrq && mSsSinr == o.mSsSinr
                    && mLevel == o.mLevel;
                    && mLevel == o.mLevel && mTimingAdvance == o.mTimingAdvance;
        }
        return false;
    }
@@ -543,6 +575,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
                .append(" ssSinr = " + mSsSinr)
                .append(" level = " + mLevel)
                .append(" parametersUseForLevel = " + mParametersUseForLevel)
                .append(" timingAdvance = " + mTimingAdvance)
                .append(" }")
                .toString();
    }