Skip to content
Snippets Groups Projects
Commit f4753f63 authored by Mingming Cai's avatar Mingming Cai
Browse files

Add CQI and table index to LTE and NR CellSignalStrength

Bug: 170771377
Test: make
Change-Id: I4c9281d5a606d3371d53020af3470e6f0f04524f
parent deb1024b
No related branches found
No related tags found
No related merge requests found
......@@ -21,7 +21,6 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.hardware.radio.V1_4.CellInfo.Info;
import android.hardware.radio.V1_5.CellInfo.CellInfoRatSpecificInfo;
import android.os.Parcel;
import android.os.Parcelable;
......@@ -351,6 +350,13 @@ public abstract class CellInfo implements Parcelable {
this.mCellConnectionStatus = ci.connectionStatus;
}
/** @hide */
protected CellInfo(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
this.mRegistered = ci.registered;
this.mTimeStamp = timeStamp;
this.mCellConnectionStatus = ci.connectionStatus;
}
/** @hide */
public static CellInfo create(android.hardware.radio.V1_0.CellInfo ci) {
if (ci == null) return null;
......@@ -395,17 +401,49 @@ public abstract class CellInfo implements Parcelable {
public static CellInfo create(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
if (ci == null) return null;
switch (ci.ratSpecificInfo.getDiscriminator()) {
case CellInfoRatSpecificInfo.hidl_discriminator.gsm:
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.gsm:
return new CellInfoGsm(ci, timeStamp);
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.cdma:
return new CellInfoCdma(ci, timeStamp);
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.lte:
return new CellInfoLte(ci, timeStamp);
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.wcdma:
return new CellInfoWcdma(ci, timeStamp);
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.tdscdma:
return new CellInfoTdscdma(ci, timeStamp);
case android.hardware.radio.V1_5.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.nr:
return new CellInfoNr(ci, timeStamp);
default: return null;
}
}
/** @hide */
public static CellInfo create(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
if (ci == null) return null;
switch (ci.ratSpecificInfo.getDiscriminator()) {
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.gsm:
return new CellInfoGsm(ci, timeStamp);
case CellInfoRatSpecificInfo.hidl_discriminator.cdma:
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.cdma:
return new CellInfoCdma(ci, timeStamp);
case CellInfoRatSpecificInfo.hidl_discriminator.lte:
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.lte:
return new CellInfoLte(ci, timeStamp);
case CellInfoRatSpecificInfo.hidl_discriminator.wcdma:
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.wcdma:
return new CellInfoWcdma(ci, timeStamp);
case CellInfoRatSpecificInfo.hidl_discriminator.tdscdma:
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.tdscdma:
return new CellInfoTdscdma(ci, timeStamp);
case CellInfoRatSpecificInfo.hidl_discriminator.nr:
case android.hardware.radio.V1_6.CellInfo
.CellInfoRatSpecificInfo.hidl_discriminator.nr:
return new CellInfoNr(ci, timeStamp);
default: return null;
}
......
......@@ -87,6 +87,15 @@ public final class CellInfoCdma extends CellInfo implements Parcelable {
new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
}
/** @hide */
public CellInfoCdma(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_2.CellInfoCdma cic = ci.ratSpecificInfo.cdma();
mCellIdentityCdma = new CellIdentityCdma(cic.cellIdentityCdma);
mCellSignalStrengthCdma =
new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
}
/**
* @return a {@link CellIdentityCdma} instance.
*/
......
......@@ -82,6 +82,14 @@ public final class CellInfoGsm extends CellInfo implements Parcelable {
mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
}
/** @hide */
public CellInfoGsm(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_5.CellInfoGsm cig = ci.ratSpecificInfo.gsm();
mCellIdentityGsm = new CellIdentityGsm(cig.cellIdentityGsm);
mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
}
/**
* @return a {@link CellIdentityGsm} instance.
*/
......
......@@ -91,6 +91,15 @@ public final class CellInfoLte extends CellInfo implements Parcelable {
mCellConfig = new CellConfigLte();
}
/** @hide */
public CellInfoLte(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_6.CellInfoLte cil = ci.ratSpecificInfo.lte();
mCellIdentityLte = new CellIdentityLte(cil.cellIdentityLte);
mCellSignalStrengthLte = new CellSignalStrengthLte(cil.signalStrengthLte);
mCellConfig = new CellConfigLte();
}
/**
* @return a {@link CellIdentityLte} instance.
*/
......
......@@ -68,6 +68,14 @@ public final class CellInfoNr extends CellInfo {
mCellSignalStrength = new CellSignalStrengthNr(cil.signalStrengthNr);
}
/** @hide */
public CellInfoNr(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_6.CellInfoNr cil = ci.ratSpecificInfo.nr();
mCellIdentity = new CellIdentityNr(cil.cellIdentityNr);
mCellSignalStrength = new CellSignalStrengthNr(cil.signalStrengthNr);
}
/**
* @return a {@link CellIdentityNr} instance.
*/
......
......@@ -85,6 +85,14 @@ public final class CellInfoTdscdma extends CellInfo implements Parcelable {
mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
}
/** @hide */
public CellInfoTdscdma(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_5.CellInfoTdscdma cit = ci.ratSpecificInfo.tdscdma();
mCellIdentityTdscdma = new CellIdentityTdscdma(cit.cellIdentityTdscdma);
mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
}
/**
* @return a {@link CellIdentityTdscdma} instance.
*/
......
......@@ -80,6 +80,14 @@ public final class CellInfoWcdma extends CellInfo implements Parcelable {
mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
}
/** @hide */
public CellInfoWcdma(android.hardware.radio.V1_6.CellInfo ci, long timeStamp) {
super(ci, timeStamp);
final android.hardware.radio.V1_5.CellInfoWcdma ciw = ci.ratSpecificInfo.wcdma();
mCellIdentityWcdma = new CellIdentityWcdma(ciw.cellIdentityWcdma);
mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
}
/**
* @return a {@link CellIdentityWcdma} instance.
*/
......
......@@ -86,6 +86,15 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
private int mRsrq;
@UnsupportedAppUsage(maxTargetSdk = android.os.Build.VERSION_CODES.P)
private int mRssnr;
/**
* CSI channel quality indicator (CQI) table index. There are multiple CQI tables.
* The definition of CQI in each table is different.
*
* Reference: 3GPP TS 136.213 section 7.2.3.
*
* Range [1, 6].
*/
private int mCqiTableIndex;
@UnsupportedAppUsage(maxTargetSdk = android.os.Build.VERSION_CODES.P)
private int mCqi;
@UnsupportedAppUsage(maxTargetSdk = android.os.Build.VERSION_CODES.P)
......@@ -120,24 +129,42 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
* @param rsrp in dBm [-140,-43], UNKNOWN
* @param rsrq in dB [-34, 3], UNKNOWN
* @param rssnr in dB [-20, +30], UNKNOWN
* @param cqiTableIndex [1, 6], UNKNOWN
* @param cqi [0, 15], UNKNOWN
* @param timingAdvance [0, 1282], UNKNOWN
*
*/
/** @hide */
public CellSignalStrengthLte(int rssi, int rsrp, int rsrq, int rssnr, int cqi,
int timingAdvance) {
public CellSignalStrengthLte(int rssi, int rsrp, int rsrq, int rssnr, int cqiTableIndex,
int cqi, int timingAdvance) {
mRssi = inRangeOrUnavailable(rssi, -113, -51);
mSignalStrength = mRssi;
mRsrp = inRangeOrUnavailable(rsrp, -140, -43);
mRsrq = inRangeOrUnavailable(rsrq, -34, 3);
mRssnr = inRangeOrUnavailable(rssnr, -20, 30);
mCqiTableIndex = inRangeOrUnavailable(cqiTableIndex, 1, 6);
mCqi = inRangeOrUnavailable(cqi, 0, 15);
mTimingAdvance = inRangeOrUnavailable(timingAdvance, 0, 1282);
updateLevel(null, null);
}
/**
* Construct a cell signal strength
*
* @param rssi in dBm [-113,-51], UNKNOWN
* @param rsrp in dBm [-140,-43], UNKNOWN
* @param rsrq in dB [-34, 3], UNKNOWN
* @param rssnr in dB [-20, +30], UNKNOWN
* @param cqi [0, 15], UNKNOWN
* @param timingAdvance [0, 1282], UNKNOWN
*
*/
/** @hide */
public CellSignalStrengthLte(int rssi, int rsrp, int rsrq, int rssnr, int cqi,
int timingAdvance) {
this(rssi, rsrp, rsrq, rssnr, CellInfo.UNAVAILABLE, cqi, timingAdvance);
}
/** @hide */
public CellSignalStrengthLte(android.hardware.radio.V1_0.LteSignalStrength lte) {
// Convert from HAL values as part of construction.
......@@ -147,6 +174,16 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
convertRssnrUnitFromTenDbToDB(lte.rssnr), lte.cqi, lte.timingAdvance);
}
/** @hide */
public CellSignalStrengthLte(android.hardware.radio.V1_6.LteSignalStrength lte) {
// Convert from HAL values as part of construction.
this(convertRssiAsuToDBm(lte.base.signalStrength),
lte.base.rsrp != CellInfo.UNAVAILABLE ? -lte.base.rsrp : lte.base.rsrp,
lte.base.rsrq != CellInfo.UNAVAILABLE ? -lte.base.rsrq : lte.base.rsrq,
convertRssnrUnitFromTenDbToDB(lte.base.rssnr), lte.cqiTableIndex, lte.base.cqi,
lte.base.timingAdvance);
}
/** @hide */
public CellSignalStrengthLte(CellSignalStrengthLte s) {
copyFrom(s);
......@@ -159,6 +196,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
mRsrp = s.mRsrp;
mRsrq = s.mRsrq;
mRssnr = s.mRssnr;
mCqiTableIndex = s.mCqiTableIndex;
mCqi = s.mCqi;
mTimingAdvance = s.mTimingAdvance;
mLevel = s.mLevel;
......@@ -179,6 +217,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
mRsrp = CellInfo.UNAVAILABLE;
mRsrq = CellInfo.UNAVAILABLE;
mRssnr = CellInfo.UNAVAILABLE;
mCqiTableIndex = CellInfo.UNAVAILABLE;
mCqi = CellInfo.UNAVAILABLE;
mTimingAdvance = CellInfo.UNAVAILABLE;
mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
......@@ -401,6 +440,17 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
return mRsrp;
}
/**
* Get table index for channel quality indicator
*
* @return the CQI table index if available or
* {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
/** @hide */
public int getCqiTableIndex() {
return mCqiTableIndex;
}
/**
* Get channel quality indicator
*
......@@ -454,7 +504,8 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
@Override
public int hashCode() {
return Objects.hash(mRssi, mRsrp, mRsrq, mRssnr, mCqi, mTimingAdvance, mLevel);
return Objects.hash(mRssi, mRsrp, mRsrq, mRssnr, mCqiTableIndex, mCqi, mTimingAdvance,
mLevel);
}
private static final CellSignalStrengthLte sInvalid = new CellSignalStrengthLte();
......@@ -476,6 +527,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
&& mRsrp == s.mRsrp
&& mRsrq == s.mRsrq
&& mRssnr == s.mRssnr
&& mCqiTableIndex == s.mCqiTableIndex
&& mCqi == s.mCqi
&& mTimingAdvance == s.mTimingAdvance
&& mLevel == s.mLevel;
......@@ -491,6 +543,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
+ " rsrp=" + mRsrp
+ " rsrq=" + mRsrq
+ " rssnr=" + mRssnr
+ " cqiTableIndex=" + mCqiTableIndex
+ " cqi=" + mCqi
+ " ta=" + mTimingAdvance
+ " level=" + mLevel
......@@ -508,6 +561,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
dest.writeInt(mRsrp);
dest.writeInt(mRsrq);
dest.writeInt(mRssnr);
dest.writeInt(mCqiTableIndex);
dest.writeInt(mCqi);
dest.writeInt(mTimingAdvance);
dest.writeInt(mLevel);
......@@ -523,6 +577,7 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
mRsrp = in.readInt();
mRsrq = in.readInt();
mRssnr = in.readInt();
mCqiTableIndex = in.readInt();
mCqi = in.readInt();
mTimingAdvance = in.readInt();
mLevel = in.readInt();
......
......@@ -18,6 +18,7 @@ package android.telephony;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
......@@ -27,7 +28,10 @@ import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 5G NR signal strength related information.
......@@ -109,6 +113,28 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
private int mCsiRsrp;
private int mCsiRsrq;
private int mCsiSinr;
/**
* CSI channel quality indicator (CQI) table index. There are multiple CQI tables.
* The definition of CQI in each table is different.
*
* Reference: 3GPP TS 138.214 section 5.2.2.1.
*
* Range [1, 3].
*/
private int mCsiCqiTableIndex;
/**
* CSI channel quality indicators (CQI) for all subbands.
*
* If the CQI report is for the entire wideband, a single CQI index is provided.
* If the CQI report is for all subbands, one CQI index is provided for each subband,
* in ascending order of subband index.
* If CQI is not available, the CQI report is empty.
*
* Reference: 3GPP TS 138.214 section 5.2.2.1.
*
* Range [0, 15] for each CQI.
*/
private List<Integer> mCsiCqiReport;;
private int mSsRsrp;
private int mSsRsrq;
private int mSsSinr;
......@@ -138,22 +164,43 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
* @param csiRsrp CSI reference signal received power.
* @param csiRsrq CSI reference signal received quality.
* @param csiSinr CSI signal-to-noise and interference ratio.
* @param csiCqiTableIndex CSI CSI channel quality indicator (CQI) table index.
* @param csiCqiReport CSI channel quality indicators (CQI) for all subbands.
* @param ssRsrp SS reference signal received power.
* @param ssRsrq SS reference signal received quality.
* @param ssSinr SS signal-to-noise and interference ratio.
* @hide
*/
public CellSignalStrengthNr(
int csiRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr) {
public CellSignalStrengthNr(int csiRsrp, int csiRsrq, int csiSinr, int csiCqiTableIndex,
List<Integer> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr) {
mCsiRsrp = inRangeOrUnavailable(csiRsrp, -140, -44);
mCsiRsrq = inRangeOrUnavailable(csiRsrq, -20, -3);
mCsiSinr = inRangeOrUnavailable(csiSinr, -23, 23);
mCsiCqiTableIndex = inRangeOrUnavailable(csiCqiTableIndex, 1, 3);
mCsiCqiReport = csiCqiReport.stream()
.map(cqi -> new Integer(inRangeOrUnavailable(cqi.intValue(), 1, 3)))
.collect(Collectors.toList());
mSsRsrp = inRangeOrUnavailable(ssRsrp, -140, -44);
mSsRsrq = inRangeOrUnavailable(ssRsrq, -43, 20);
mSsSinr = inRangeOrUnavailable(ssSinr, -23, 40);
updateLevel(null, null);
}
/**
* @param csiRsrp CSI reference signal received power.
* @param csiRsrq CSI reference signal received quality.
* @param csiSinr CSI signal-to-noise and interference ratio.
* @param ssRsrp SS reference signal received power.
* @param ssRsrq SS reference signal received quality.
* @param ssSinr SS signal-to-noise and interference ratio.
* @hide
*/
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);
}
/**
* @hide
* @param ss signal strength from modem.
......@@ -163,6 +210,15 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
ss.ssSinr);
}
/**
* @hide
* @param ss signal strength from modem.
*/
public CellSignalStrengthNr(android.hardware.radio.V1_6.NrSignalStrength ss) {
this(flip(ss.base.csiRsrp), flip(ss.base.csiRsrq), ss.base.csiSinr, ss.csiCqiTableIndex,
ss.csiCqiReport, flip(ss.base.ssRsrp), flip(ss.base.ssRsrq), ss.base.ssSinr);
}
/**
* Flip sign cell strength value when taking in the value from hal
* @param val cell strength value
......@@ -232,6 +288,36 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
return mCsiSinr;
}
/**
* Return CSI channel quality indicator (CQI) table index. There are multiple CQI tables.
* The definition of CQI in each table is different.
*
* Reference: 3GPP TS 138.214 section 5.2.2.1.
*
* Range [1, 3].
*/
/** @hide */
public int getCsiCqiTableIndex() {
return mCsiCqiTableIndex;
}
/**
* Return a list of CSI channel quality indicators (CQI) for all subbands.
*
* If the CQI report is for the entire wideband, a single CQI index is provided.
* If the CQI report is for all subbands, one CQI index is provided for each subband,
* in ascending order of subband index.
* If CQI is not available, the CQI report is empty.
*
* Reference: 3GPP TS 138.214 section 5.2.2.1.
*
* Range [0, 15] for each CQI.
*/
/** @hide */
@NonNull
public List<Integer> getCsiCqiReport() {
return mCsiCqiReport;
}
@Override
public int describeContents() {
return 0;
......@@ -243,6 +329,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
dest.writeInt(mCsiRsrp);
dest.writeInt(mCsiRsrq);
dest.writeInt(mCsiSinr);
dest.writeInt(mCsiCqiTableIndex);
dest.writeList(mCsiCqiReport);
dest.writeInt(mSsRsrp);
dest.writeInt(mSsRsrq);
dest.writeInt(mSsSinr);
......@@ -253,6 +341,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
mCsiRsrp = in.readInt();
mCsiRsrq = in.readInt();
mCsiSinr = in.readInt();
mCsiCqiTableIndex = in.readInt();
mCsiCqiReport = in.readArrayList(Integer.class.getClassLoader());
mSsRsrp = in.readInt();
mSsRsrq = in.readInt();
mSsSinr = in.readInt();
......@@ -265,6 +355,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
mCsiRsrp = CellInfo.UNAVAILABLE;
mCsiRsrq = CellInfo.UNAVAILABLE;
mCsiSinr = CellInfo.UNAVAILABLE;
mCsiCqiTableIndex = CellInfo.UNAVAILABLE;
mCsiCqiReport = Collections.emptyList();
mSsRsrp = CellInfo.UNAVAILABLE;
mSsRsrq = CellInfo.UNAVAILABLE;
mSsSinr = CellInfo.UNAVAILABLE;
......@@ -408,6 +500,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
mCsiRsrp = s.mCsiRsrp;
mCsiRsrq = s.mCsiRsrq;
mCsiSinr = s.mCsiSinr;
mCsiCqiTableIndex = s.mCsiCqiTableIndex;
mCsiCqiReport = s.mCsiCqiReport;
mSsRsrp = s.mSsRsrp;
mSsRsrq = s.mSsRsrq;
mSsSinr = s.mSsSinr;
......@@ -423,7 +517,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
@Override
public int hashCode() {
return Objects.hash(mCsiRsrp, mCsiRsrq, mCsiSinr, mSsRsrp, mSsRsrq, mSsSinr, mLevel);
return Objects.hash(mCsiRsrp, mCsiRsrq, mCsiSinr, mCsiCqiTableIndex,
mCsiCqiReport, mSsRsrp, mSsRsrq, mSsSinr, mLevel);
}
private static final CellSignalStrengthNr sInvalid = new CellSignalStrengthNr();
......@@ -439,6 +534,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
if (obj instanceof CellSignalStrengthNr) {
CellSignalStrengthNr o = (CellSignalStrengthNr) obj;
return mCsiRsrp == o.mCsiRsrp && mCsiRsrq == o.mCsiRsrq && mCsiSinr == o.mCsiSinr
&& mCsiCqiTableIndex == o.mCsiCqiTableIndex
&& mCsiCqiReport.equals(o.mCsiCqiReport)
&& mSsRsrp == o.mSsRsrp && mSsRsrq == o.mSsRsrq && mSsSinr == o.mSsSinr
&& mLevel == o.mLevel;
}
......@@ -451,7 +548,8 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
.append(TAG + ":{")
.append(" csiRsrp = " + mCsiRsrp)
.append(" csiRsrq = " + mCsiRsrq)
.append(" csiSinr = " + mCsiSinr)
.append(" csiCqiTableIndex = " + mCsiCqiTableIndex)
.append(" csiCqiReport = " + mCsiCqiReport)
.append(" ssRsrp = " + mSsRsrp)
.append(" ssRsrq = " + mSsRsrq)
.append(" ssSinr = " + mSsSinr)
......
......@@ -187,6 +187,21 @@ public class SignalStrength implements Parcelable {
new CellSignalStrengthNr(signalStrength.nr));
}
/**
* Constructor for Radio HAL V1.6.
*
* @param signalStrength signal strength reported from modem.
* @hide
*/
public SignalStrength(android.hardware.radio.V1_6.SignalStrength signalStrength) {
this(new CellSignalStrengthCdma(signalStrength.cdma, signalStrength.evdo),
new CellSignalStrengthGsm(signalStrength.gsm),
new CellSignalStrengthWcdma(signalStrength.wcdma),
new CellSignalStrengthTdscdma(signalStrength.tdscdma),
new CellSignalStrengthLte(signalStrength.lte),
new CellSignalStrengthNr(signalStrength.nr));
}
private CellSignalStrength getPrimary() {
// This behavior is intended to replicate the legacy behavior of getLevel() by prioritizing
// newer faster RATs for default/for display purposes.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment