Loading src/java/com/android/internal/telephony/RIL.java +25 −1 Original line number Original line Diff line number Diff line Loading @@ -4210,7 +4210,14 @@ public class RIL extends BaseCommands implements CommandsInterface { } } try { try { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) { android.hardware.radio.V1_6.IRadio radioProxy16 = (android.hardware.radio.V1_6.IRadio) radioProxy; radioProxy16.getCellInfoList_1_6(rr.mSerial); } else { radioProxy.getCellInfoList(rr.mSerial); radioProxy.getCellInfoList(rr.mSerial); } } catch (RemoteException | RuntimeException e) { } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "getCellInfoList", e); handleRadioProxyExceptionForRR(rr, "getCellInfoList", e); } } Loading Loading @@ -7140,6 +7147,23 @@ public class RIL extends BaseCommands implements CommandsInterface { return response; return response; } } /** * Convert CellInfo defined in 1.6/types.hal to CellInfo type. * @param records List of CellInfo defined in 1.6/types.hal. * @return List of converted CellInfo object. */ @VisibleForTesting public static ArrayList<CellInfo> convertHalCellInfoList_1_6( ArrayList<android.hardware.radio.V1_6.CellInfo> records) { ArrayList<CellInfo> response = new ArrayList<>(records.size()); final long nanotime = SystemClock.elapsedRealtimeNanos(); for (android.hardware.radio.V1_6.CellInfo record : records) { response.add(CellInfo.create(record, nanotime)); } return response; } private static LinkAddress createLinkAddressFromString(String addressString) { private static LinkAddress createLinkAddressFromString(String addressString) { return createLinkAddressFromString(addressString, 0, LinkAddress.LIFETIME_UNKNOWN, return createLinkAddressFromString(addressString, 0, LinkAddress.LIFETIME_UNKNOWN, LinkAddress.LIFETIME_UNKNOWN); LinkAddress.LIFETIME_UNKNOWN); Loading src/java/com/android/internal/telephony/RadioIndication.java +28 −0 Original line number Original line Diff line number Diff line Loading @@ -804,6 +804,18 @@ public class RadioIndication extends IRadioIndication.Stub { mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } } /** Get unsolicited message for cellInfoList using HAL V1_5 */ public void cellInfoList_1_6(int indicationType, ArrayList<android.hardware.radio.V1_6.CellInfo> records) { mRil.processIndication(indicationType); ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_6(records); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response); mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } /** Get unsolicited message for uicc applications enablement changes. */ /** Get unsolicited message for uicc applications enablement changes. */ public void uiccApplicationsEnablementChanged(int indicationType, boolean enabled) { public void uiccApplicationsEnablementChanged(int indicationType, boolean enabled) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading Loading @@ -839,6 +851,12 @@ public class RadioIndication extends IRadioIndication.Stub { responseNetworkScan_1_5(indicationType, result); responseNetworkScan_1_5(indicationType, result); } } /** Incremental network scan results with HAL V1_6 */ public void networkScanResult_1_6(int indicationType, android.hardware.radio.V1_6.NetworkScanResult result) { responseNetworkScan_1_6(indicationType, result); } public void imsNetworkStateChanged(int indicationType) { public void imsNetworkStateChanged(int indicationType) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading Loading @@ -1225,6 +1243,16 @@ public class RadioIndication extends IRadioIndication.Stub { mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); } } private void responseNetworkScan_1_6(int indicationType, android.hardware.radio.V1_6.NetworkScanResult result) { mRil.processIndication(indicationType); ArrayList<CellInfo> cellInfos = RIL.convertHalCellInfoList_1_6(result.networkInfos); NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr); mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); } private void responseDataCallListChanged(int indicationType, List<?> dcList) { private void responseDataCallListChanged(int indicationType, List<?> dcList) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading src/java/com/android/internal/telephony/RadioResponse.java +24 −0 Original line number Original line Diff line number Diff line Loading @@ -1380,6 +1380,16 @@ public class RadioResponse extends IRadioResponse.Stub { responseCellInfoList_1_5(responseInfo, cellInfo); responseCellInfoList_1_5(responseInfo, cellInfo); } } /** * @param responseInfo Response info struct containing response type, serial no. and error. * @param cellInfo List of current cell information known to radio. */ public void getCellInfoListResponse_1_6( android.hardware.radio.V1_6.RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) { responseCellInfoList_1_6(responseInfo, cellInfo); } /** /** * @param responseInfo Response info struct containing response type, serial no. and error * @param responseInfo Response info struct containing response type, serial no. and error */ */ Loading Loading @@ -2651,6 +2661,20 @@ public class RadioResponse extends IRadioResponse.Stub { } } } } private void responseCellInfoList_1_6( android.hardware.radio.V1_6.RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) { RILRequest rr = mRil.processResponse_1_6(responseInfo); if (rr != null) { ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_6(cellInfo); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone_1_6(rr, responseInfo, ret); } } private void responseActivityData(RadioResponseInfo responseInfo, private void responseActivityData(RadioResponseInfo responseInfo, ActivityStatsInfo activityInfo) { ActivityStatsInfo activityInfo) { RILRequest rr = mRil.processResponse(responseInfo); RILRequest rr = mRil.processResponse(responseInfo); Loading tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java +52 −33 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.internal.telephony; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat; import android.hardware.radio.V1_4.NrSignalStrength; import android.hardware.radio.V1_6.NrSignalStrength; import android.os.Parcel; import android.os.Parcel; import android.telephony.CellInfo; import android.telephony.CellInfo; import android.telephony.CellSignalStrength; import android.telephony.CellSignalStrength; Loading @@ -30,6 +30,10 @@ import com.google.common.collect.Range; import org.junit.Test; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class CellSignalStrengthNrTest extends AndroidTestCase { public class CellSignalStrengthNrTest extends AndroidTestCase { private static final int CSIRSRP = -123; private static final int CSIRSRP = -123; private static final int CSIRSRQ = -11; private static final int CSIRSRQ = -11; Loading @@ -38,6 +42,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { private static final int INVALID_CSIRSRP = Integer.MAX_VALUE; private static final int INVALID_CSIRSRP = Integer.MAX_VALUE; private static final int INVALID_SSRSRP = Integer.MAX_VALUE; private static final int INVALID_SSRSRP = Integer.MAX_VALUE; private static final int CSISINR = 18; private static final int CSISINR = 18; private static final int CSICQI_TABLE_INDEX = 1; private static final ArrayList<Integer> CSICQI_REPORT = new ArrayList<>(Arrays.asList(3, 2, 1)); private static final int SSRSRP = -112; private static final int SSRSRP = -112; private static final int SSRSRQ = -13; private static final int SSRSRQ = -13; private static final int SSSINR = 32; private static final int SSSINR = 32; Loading @@ -45,13 +51,15 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testGetMethod() { public void testGetMethod() { // GIVEN an instance of CellSignalStrengthNr // GIVEN an instance of CellSignalStrengthNr CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the get method should return correct value // THEN the get method should return correct value assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsSinr()).isEqualTo(SSSINR); assertThat(css.getSsSinr()).isEqualTo(SSSINR); Loading @@ -62,18 +70,22 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testGetMethodWithHal() { public void testGetMethodWithHal() { // GIVEN an instance of NrSignalStrength with some positive values // GIVEN an instance of NrSignalStrength with some positive values NrSignalStrength nrSignalStrength = new NrSignalStrength(); NrSignalStrength nrSignalStrength = new NrSignalStrength(); nrSignalStrength.csiRsrp = -CSIRSRP; nrSignalStrength.base.csiRsrp = -CSIRSRP; nrSignalStrength.csiRsrq = -CSIRSRQ; nrSignalStrength.base.csiRsrq = -CSIRSRQ; nrSignalStrength.csiSinr = CSISINR; nrSignalStrength.base.csiSinr = CSISINR; nrSignalStrength.ssRsrp = -SSRSRP; nrSignalStrength.csiCqiTableIndex = CSICQI_TABLE_INDEX; nrSignalStrength.ssRsrq = -SSRSRQ; nrSignalStrength.csiCqiReport = CSICQI_REPORT; nrSignalStrength.ssSinr = SSSINR; nrSignalStrength.base.ssRsrp = -SSRSRP; nrSignalStrength.base.ssRsrq = -SSRSRQ; nrSignalStrength.base.ssSinr = SSSINR; // THEN the get method should return the correct value // THEN the get method should return the correct value CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsSinr()).isEqualTo(SSSINR); assertThat(css.getSsSinr()).isEqualTo(SSSINR); Loading @@ -84,18 +96,22 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testUnavailableValueWithHal() { public void testUnavailableValueWithHal() { // GIVEN an instance of NrSignalStrength // GIVEN an instance of NrSignalStrength NrSignalStrength nrSignalStrength = new NrSignalStrength(); NrSignalStrength nrSignalStrength = new NrSignalStrength(); nrSignalStrength.csiRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.csiRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.csiSinr = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiSinr = CellInfo.UNAVAILABLE; nrSignalStrength.ssRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.csiCqiTableIndex = CellInfo.UNAVAILABLE; nrSignalStrength.ssRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.csiCqiReport = new ArrayList<Integer>(); nrSignalStrength.ssSinr = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssSinr = CellInfo.UNAVAILABLE; // THEN the get method should return unavailable value // THEN the get method should return unavailable value CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); assertThat(css.getCsiRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiCqiReport()).isEqualTo(Collections.emptyList()); assertThat(css.getSsRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsSinr()).isEqualTo(CellInfo.UNAVAILABLE); Loading @@ -105,10 +121,10 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testEquals_sameParameters() { public void testEquals_sameParameters() { // GIVEN an instance of CellSignalStrengthNr and another object with the same parameters // GIVEN an instance of CellSignalStrengthNr and another object with the same parameters CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); CellSignalStrengthNr anotherCss = new CellSignalStrengthNr( CellSignalStrengthNr anotherCss = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN this two objects are equivalent // THEN this two objects are equivalent assertThat(css).isEqualTo(anotherCss); assertThat(css).isEqualTo(anotherCss); Loading @@ -118,10 +134,11 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testEquals_differentParameters() { public void testEquals_differentParameters() { // GIVEN an instance of CellSignalStrengthNr and another object with some different // GIVEN an instance of CellSignalStrengthNr and another object with some different // parameters // parameters CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); CellSignalStrengthNr anotherCss = new CellSignalStrengthNr( CellSignalStrengthNr anotherCss = new CellSignalStrengthNr(ANOTHER_CSIRSRP, ANOTHER_CSIRSRP, ANOTHER_CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); ANOTHER_CSIRSRQ, CSISINR, CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN this two objects are different // THEN this two objects are different assertThat(css).isNotEqualTo(anotherCss); assertThat(css).isNotEqualTo(anotherCss); Loading @@ -130,8 +147,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testAusLevel_validValue() { public void testAusLevel_validValue() { // GIVEN an instance of CellSignalStrengthNr with valid csirsrp // GIVEN an instance of CellSignalStrengthNr with valid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the asu level is in range [0, 97] // THEN the asu level is in range [0, 97] assertThat(css.getAsuLevel()).isIn(Range.range(0, BoundType.CLOSED, 97, BoundType.CLOSED)); assertThat(css.getAsuLevel()).isIn(Range.range(0, BoundType.CLOSED, 97, BoundType.CLOSED)); Loading @@ -140,8 +157,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testAsuLevel_invalidValue() { public void testAsuLevel_invalidValue() { // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, INVALID_SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, INVALID_SSRSRP, SSRSRQ, SSSINR); // THEN the asu level is unknown // THEN the asu level is unknown assertThat(css.getAsuLevel()).isEqualTo(CellSignalStrengthNr.UNKNOWN_ASU_LEVEL); assertThat(css.getAsuLevel()).isEqualTo(CellSignalStrengthNr.UNKNOWN_ASU_LEVEL); Loading @@ -151,8 +168,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testSignalLevel_validValue() { public void testSignalLevel_validValue() { for (int ssRsrp = -140; ssRsrp <= -44; ssRsrp++) { for (int ssRsrp = -140; ssRsrp <= -44; ssRsrp++) { // GIVEN an instance of CellSignalStrengthNr with valid csirsrp // GIVEN an instance of CellSignalStrengthNr with valid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, ssRsrp, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, INVALID_SSRSRP, SSRSRQ, SSSINR); // THEN the signal level is valid // THEN the signal level is valid assertThat(css.getLevel()).isIn(Range.range( assertThat(css.getLevel()).isIn(Range.range( Loading @@ -164,8 +181,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testSignalLevel_invalidValue() { public void testSignalLevel_invalidValue() { // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, INVALID_SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the signal level is unknown // THEN the signal level is unknown assertThat(css.getLevel()).isEqualTo(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN); assertThat(css.getLevel()).isEqualTo(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN); Loading @@ -174,8 +191,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testParcel() { public void testParcel() { // GIVEN an instance of CellSignalStrengthNr // GIVEN an instance of CellSignalStrengthNr CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // WHEN write the object to parcel and create another object with that parcel // WHEN write the object to parcel and create another object with that parcel Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); Loading @@ -188,6 +205,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { assertThat(anotherCss.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(anotherCss.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(anotherCss.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(anotherCss.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(anotherCss.getCsiSinr()).isEqualTo(CSISINR); assertThat(anotherCss.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(anotherCss.getSsRsrp()).isEqualTo(SSRSRP); assertThat(anotherCss.getSsRsrp()).isEqualTo(SSRSRP); assertThat(anotherCss.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(anotherCss.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(anotherCss.getSsSinr()).isEqualTo(SSSINR); assertThat(anotherCss.getSsSinr()).isEqualTo(SSSINR); Loading tests/telephonytests/src/com/android/internal/telephony/SignalStrengthTest.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.JUnit4; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.List; /** Unit tests for {@link IpSecConfig}. */ /** Unit tests for {@link IpSecConfig}. */ Loading Loading @@ -88,13 +90,14 @@ public class SignalStrengthTest { public void testParcelUnparcel() throws Exception { public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new SignalStrength()); assertParcelingIsLossless(new SignalStrength()); List<Integer> NrCqiReport = new ArrayList<>(Arrays.asList(3, 2, 1)); SignalStrength s = new SignalStrength( SignalStrength s = new SignalStrength( new CellSignalStrengthCdma(-93, -132, -89, -125, 5), new CellSignalStrengthCdma(-93, -132, -89, -125, 5), new CellSignalStrengthGsm(-79, 2, 5), new CellSignalStrengthGsm(-79, 2, 5), new CellSignalStrengthWcdma(-94, 4, -102, -5), new CellSignalStrengthWcdma(-94, 4, -102, -5), new CellSignalStrengthTdscdma(-95, 2, -103), new CellSignalStrengthTdscdma(-95, 2, -103), new CellSignalStrengthLte(-85, -91, -6, -10, 12, 1), new CellSignalStrengthLte(-85, -91, -6, -10, 1, 12, 1), new CellSignalStrengthNr(-91, -6, 3, -80, -7, 4)); new CellSignalStrengthNr(-91, -6, 3, 1, NrCqiReport, -80, -7, 4)); assertParcelingIsLossless(s); assertParcelingIsLossless(s); PersistableBundle bundle = new PersistableBundle(); PersistableBundle bundle = new PersistableBundle(); Loading Loading @@ -125,7 +128,7 @@ public class SignalStrengthTest { @Test @Test public void testGetCellSignalStrengths() throws Exception { public void testGetCellSignalStrengths() throws Exception { CellSignalStrengthLte lte = new CellSignalStrengthLte(-85, -91, -6, -10, 12, 1); CellSignalStrengthLte lte = new CellSignalStrengthLte(-85, -91, -6, -10, 1, 12, 1); CellSignalStrengthGsm gsm = new CellSignalStrengthGsm(-79, 2, 5); CellSignalStrengthGsm gsm = new CellSignalStrengthGsm(-79, 2, 5); CellSignalStrengthCdma cdma = new CellSignalStrengthCdma(-93, -132, -89, -125, 5); CellSignalStrengthCdma cdma = new CellSignalStrengthCdma(-93, -132, -89, -125, 5); CellSignalStrengthWcdma wcdma = new CellSignalStrengthWcdma(-94, 4, -102, -5); CellSignalStrengthWcdma wcdma = new CellSignalStrengthWcdma(-94, 4, -102, -5); Loading Loading @@ -166,6 +169,7 @@ public class SignalStrengthTest { lteRsrp, // rsrp lteRsrp, // rsrp lteRsrq, // rsrq lteRsrq, // rsrq -25, // rssnr -25, // rssnr CellInfo.UNAVAILABLE, // cqiTableIndex CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE); // timingAdvance CellInfo.UNAVAILABLE); // timingAdvance Loading Loading @@ -198,6 +202,7 @@ public class SignalStrengthTest { lteRsrp, // rsrp lteRsrp, // rsrp 15, // rsrq 15, // rsrq lteRssnr, // rssnr lteRssnr, // rssnr CellInfo.UNAVAILABLE, // cqiTableIndex CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE); // timingAdvance CellInfo.UNAVAILABLE); // timingAdvance Loading Loading
src/java/com/android/internal/telephony/RIL.java +25 −1 Original line number Original line Diff line number Diff line Loading @@ -4210,7 +4210,14 @@ public class RIL extends BaseCommands implements CommandsInterface { } } try { try { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) { android.hardware.radio.V1_6.IRadio radioProxy16 = (android.hardware.radio.V1_6.IRadio) radioProxy; radioProxy16.getCellInfoList_1_6(rr.mSerial); } else { radioProxy.getCellInfoList(rr.mSerial); radioProxy.getCellInfoList(rr.mSerial); } } catch (RemoteException | RuntimeException e) { } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "getCellInfoList", e); handleRadioProxyExceptionForRR(rr, "getCellInfoList", e); } } Loading Loading @@ -7140,6 +7147,23 @@ public class RIL extends BaseCommands implements CommandsInterface { return response; return response; } } /** * Convert CellInfo defined in 1.6/types.hal to CellInfo type. * @param records List of CellInfo defined in 1.6/types.hal. * @return List of converted CellInfo object. */ @VisibleForTesting public static ArrayList<CellInfo> convertHalCellInfoList_1_6( ArrayList<android.hardware.radio.V1_6.CellInfo> records) { ArrayList<CellInfo> response = new ArrayList<>(records.size()); final long nanotime = SystemClock.elapsedRealtimeNanos(); for (android.hardware.radio.V1_6.CellInfo record : records) { response.add(CellInfo.create(record, nanotime)); } return response; } private static LinkAddress createLinkAddressFromString(String addressString) { private static LinkAddress createLinkAddressFromString(String addressString) { return createLinkAddressFromString(addressString, 0, LinkAddress.LIFETIME_UNKNOWN, return createLinkAddressFromString(addressString, 0, LinkAddress.LIFETIME_UNKNOWN, LinkAddress.LIFETIME_UNKNOWN); LinkAddress.LIFETIME_UNKNOWN); Loading
src/java/com/android/internal/telephony/RadioIndication.java +28 −0 Original line number Original line Diff line number Diff line Loading @@ -804,6 +804,18 @@ public class RadioIndication extends IRadioIndication.Stub { mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } } /** Get unsolicited message for cellInfoList using HAL V1_5 */ public void cellInfoList_1_6(int indicationType, ArrayList<android.hardware.radio.V1_6.CellInfo> records) { mRil.processIndication(indicationType); ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_6(records); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response); mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } /** Get unsolicited message for uicc applications enablement changes. */ /** Get unsolicited message for uicc applications enablement changes. */ public void uiccApplicationsEnablementChanged(int indicationType, boolean enabled) { public void uiccApplicationsEnablementChanged(int indicationType, boolean enabled) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading Loading @@ -839,6 +851,12 @@ public class RadioIndication extends IRadioIndication.Stub { responseNetworkScan_1_5(indicationType, result); responseNetworkScan_1_5(indicationType, result); } } /** Incremental network scan results with HAL V1_6 */ public void networkScanResult_1_6(int indicationType, android.hardware.radio.V1_6.NetworkScanResult result) { responseNetworkScan_1_6(indicationType, result); } public void imsNetworkStateChanged(int indicationType) { public void imsNetworkStateChanged(int indicationType) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading Loading @@ -1225,6 +1243,16 @@ public class RadioIndication extends IRadioIndication.Stub { mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); } } private void responseNetworkScan_1_6(int indicationType, android.hardware.radio.V1_6.NetworkScanResult result) { mRil.processIndication(indicationType); ArrayList<CellInfo> cellInfos = RIL.convertHalCellInfoList_1_6(result.networkInfos); NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr); mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null)); } private void responseDataCallListChanged(int indicationType, List<?> dcList) { private void responseDataCallListChanged(int indicationType, List<?> dcList) { mRil.processIndication(indicationType); mRil.processIndication(indicationType); Loading
src/java/com/android/internal/telephony/RadioResponse.java +24 −0 Original line number Original line Diff line number Diff line Loading @@ -1380,6 +1380,16 @@ public class RadioResponse extends IRadioResponse.Stub { responseCellInfoList_1_5(responseInfo, cellInfo); responseCellInfoList_1_5(responseInfo, cellInfo); } } /** * @param responseInfo Response info struct containing response type, serial no. and error. * @param cellInfo List of current cell information known to radio. */ public void getCellInfoListResponse_1_6( android.hardware.radio.V1_6.RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) { responseCellInfoList_1_6(responseInfo, cellInfo); } /** /** * @param responseInfo Response info struct containing response type, serial no. and error * @param responseInfo Response info struct containing response type, serial no. and error */ */ Loading Loading @@ -2651,6 +2661,20 @@ public class RadioResponse extends IRadioResponse.Stub { } } } } private void responseCellInfoList_1_6( android.hardware.radio.V1_6.RadioResponseInfo responseInfo, ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) { RILRequest rr = mRil.processResponse_1_6(responseInfo); if (rr != null) { ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_6(cellInfo); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone_1_6(rr, responseInfo, ret); } } private void responseActivityData(RadioResponseInfo responseInfo, private void responseActivityData(RadioResponseInfo responseInfo, ActivityStatsInfo activityInfo) { ActivityStatsInfo activityInfo) { RILRequest rr = mRil.processResponse(responseInfo); RILRequest rr = mRil.processResponse(responseInfo); Loading
tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java +52 −33 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.internal.telephony; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat; import android.hardware.radio.V1_4.NrSignalStrength; import android.hardware.radio.V1_6.NrSignalStrength; import android.os.Parcel; import android.os.Parcel; import android.telephony.CellInfo; import android.telephony.CellInfo; import android.telephony.CellSignalStrength; import android.telephony.CellSignalStrength; Loading @@ -30,6 +30,10 @@ import com.google.common.collect.Range; import org.junit.Test; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class CellSignalStrengthNrTest extends AndroidTestCase { public class CellSignalStrengthNrTest extends AndroidTestCase { private static final int CSIRSRP = -123; private static final int CSIRSRP = -123; private static final int CSIRSRQ = -11; private static final int CSIRSRQ = -11; Loading @@ -38,6 +42,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { private static final int INVALID_CSIRSRP = Integer.MAX_VALUE; private static final int INVALID_CSIRSRP = Integer.MAX_VALUE; private static final int INVALID_SSRSRP = Integer.MAX_VALUE; private static final int INVALID_SSRSRP = Integer.MAX_VALUE; private static final int CSISINR = 18; private static final int CSISINR = 18; private static final int CSICQI_TABLE_INDEX = 1; private static final ArrayList<Integer> CSICQI_REPORT = new ArrayList<>(Arrays.asList(3, 2, 1)); private static final int SSRSRP = -112; private static final int SSRSRP = -112; private static final int SSRSRQ = -13; private static final int SSRSRQ = -13; private static final int SSSINR = 32; private static final int SSSINR = 32; Loading @@ -45,13 +51,15 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testGetMethod() { public void testGetMethod() { // GIVEN an instance of CellSignalStrengthNr // GIVEN an instance of CellSignalStrengthNr CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the get method should return correct value // THEN the get method should return correct value assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsSinr()).isEqualTo(SSSINR); assertThat(css.getSsSinr()).isEqualTo(SSSINR); Loading @@ -62,18 +70,22 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testGetMethodWithHal() { public void testGetMethodWithHal() { // GIVEN an instance of NrSignalStrength with some positive values // GIVEN an instance of NrSignalStrength with some positive values NrSignalStrength nrSignalStrength = new NrSignalStrength(); NrSignalStrength nrSignalStrength = new NrSignalStrength(); nrSignalStrength.csiRsrp = -CSIRSRP; nrSignalStrength.base.csiRsrp = -CSIRSRP; nrSignalStrength.csiRsrq = -CSIRSRQ; nrSignalStrength.base.csiRsrq = -CSIRSRQ; nrSignalStrength.csiSinr = CSISINR; nrSignalStrength.base.csiSinr = CSISINR; nrSignalStrength.ssRsrp = -SSRSRP; nrSignalStrength.csiCqiTableIndex = CSICQI_TABLE_INDEX; nrSignalStrength.ssRsrq = -SSRSRQ; nrSignalStrength.csiCqiReport = CSICQI_REPORT; nrSignalStrength.ssSinr = SSSINR; nrSignalStrength.base.ssRsrp = -SSRSRP; nrSignalStrength.base.ssRsrq = -SSRSRQ; nrSignalStrength.base.ssSinr = SSSINR; // THEN the get method should return the correct value // THEN the get method should return the correct value CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrp()).isEqualTo(SSRSRP); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(css.getSsSinr()).isEqualTo(SSSINR); assertThat(css.getSsSinr()).isEqualTo(SSSINR); Loading @@ -84,18 +96,22 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testUnavailableValueWithHal() { public void testUnavailableValueWithHal() { // GIVEN an instance of NrSignalStrength // GIVEN an instance of NrSignalStrength NrSignalStrength nrSignalStrength = new NrSignalStrength(); NrSignalStrength nrSignalStrength = new NrSignalStrength(); nrSignalStrength.csiRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.csiRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.csiSinr = CellInfo.UNAVAILABLE; nrSignalStrength.base.csiSinr = CellInfo.UNAVAILABLE; nrSignalStrength.ssRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.csiCqiTableIndex = CellInfo.UNAVAILABLE; nrSignalStrength.ssRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.csiCqiReport = new ArrayList<Integer>(); nrSignalStrength.ssSinr = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssRsrp = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssRsrq = CellInfo.UNAVAILABLE; nrSignalStrength.base.ssSinr = CellInfo.UNAVAILABLE; // THEN the get method should return unavailable value // THEN the get method should return unavailable value CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); CellSignalStrengthNr css = new CellSignalStrengthNr(nrSignalStrength); assertThat(css.getCsiRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getCsiCqiReport()).isEqualTo(Collections.emptyList()); assertThat(css.getSsRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrp()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsRsrq()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsSinr()).isEqualTo(CellInfo.UNAVAILABLE); assertThat(css.getSsSinr()).isEqualTo(CellInfo.UNAVAILABLE); Loading @@ -105,10 +121,10 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testEquals_sameParameters() { public void testEquals_sameParameters() { // GIVEN an instance of CellSignalStrengthNr and another object with the same parameters // GIVEN an instance of CellSignalStrengthNr and another object with the same parameters CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); CellSignalStrengthNr anotherCss = new CellSignalStrengthNr( CellSignalStrengthNr anotherCss = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN this two objects are equivalent // THEN this two objects are equivalent assertThat(css).isEqualTo(anotherCss); assertThat(css).isEqualTo(anotherCss); Loading @@ -118,10 +134,11 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testEquals_differentParameters() { public void testEquals_differentParameters() { // GIVEN an instance of CellSignalStrengthNr and another object with some different // GIVEN an instance of CellSignalStrengthNr and another object with some different // parameters // parameters CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); CellSignalStrengthNr anotherCss = new CellSignalStrengthNr( CellSignalStrengthNr anotherCss = new CellSignalStrengthNr(ANOTHER_CSIRSRP, ANOTHER_CSIRSRP, ANOTHER_CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); ANOTHER_CSIRSRQ, CSISINR, CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN this two objects are different // THEN this two objects are different assertThat(css).isNotEqualTo(anotherCss); assertThat(css).isNotEqualTo(anotherCss); Loading @@ -130,8 +147,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testAusLevel_validValue() { public void testAusLevel_validValue() { // GIVEN an instance of CellSignalStrengthNr with valid csirsrp // GIVEN an instance of CellSignalStrengthNr with valid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the asu level is in range [0, 97] // THEN the asu level is in range [0, 97] assertThat(css.getAsuLevel()).isIn(Range.range(0, BoundType.CLOSED, 97, BoundType.CLOSED)); assertThat(css.getAsuLevel()).isIn(Range.range(0, BoundType.CLOSED, 97, BoundType.CLOSED)); Loading @@ -140,8 +157,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testAsuLevel_invalidValue() { public void testAsuLevel_invalidValue() { // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, INVALID_SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, INVALID_SSRSRP, SSRSRQ, SSSINR); // THEN the asu level is unknown // THEN the asu level is unknown assertThat(css.getAsuLevel()).isEqualTo(CellSignalStrengthNr.UNKNOWN_ASU_LEVEL); assertThat(css.getAsuLevel()).isEqualTo(CellSignalStrengthNr.UNKNOWN_ASU_LEVEL); Loading @@ -151,8 +168,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { public void testSignalLevel_validValue() { public void testSignalLevel_validValue() { for (int ssRsrp = -140; ssRsrp <= -44; ssRsrp++) { for (int ssRsrp = -140; ssRsrp <= -44; ssRsrp++) { // GIVEN an instance of CellSignalStrengthNr with valid csirsrp // GIVEN an instance of CellSignalStrengthNr with valid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, ssRsrp, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, INVALID_SSRSRP, SSRSRQ, SSSINR); // THEN the signal level is valid // THEN the signal level is valid assertThat(css.getLevel()).isIn(Range.range( assertThat(css.getLevel()).isIn(Range.range( Loading @@ -164,8 +181,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testSignalLevel_invalidValue() { public void testSignalLevel_invalidValue() { // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp // GIVEN an instance of CellSignalStrengthNr with invalid csirsrp CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, INVALID_SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // THEN the signal level is unknown // THEN the signal level is unknown assertThat(css.getLevel()).isEqualTo(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN); assertThat(css.getLevel()).isEqualTo(CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN); Loading @@ -174,8 +191,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { @Test @Test public void testParcel() { public void testParcel() { // GIVEN an instance of CellSignalStrengthNr // GIVEN an instance of CellSignalStrengthNr CellSignalStrengthNr css = new CellSignalStrengthNr( CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, CSIRSRP, CSIRSRQ, CSISINR, SSRSRP, SSRSRQ, SSSINR); CSICQI_TABLE_INDEX, CSICQI_REPORT, SSRSRP, SSRSRQ, SSSINR); // WHEN write the object to parcel and create another object with that parcel // WHEN write the object to parcel and create another object with that parcel Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); Loading @@ -188,6 +205,8 @@ public class CellSignalStrengthNrTest extends AndroidTestCase { assertThat(anotherCss.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(anotherCss.getCsiRsrp()).isEqualTo(CSIRSRP); assertThat(anotherCss.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(anotherCss.getCsiRsrq()).isEqualTo(CSIRSRQ); assertThat(anotherCss.getCsiSinr()).isEqualTo(CSISINR); assertThat(anotherCss.getCsiSinr()).isEqualTo(CSISINR); assertThat(css.getCsiCqiTableIndex()).isEqualTo(CSICQI_TABLE_INDEX); assertThat(css.getCsiCqiReport()).isEqualTo(CSICQI_REPORT); assertThat(anotherCss.getSsRsrp()).isEqualTo(SSRSRP); assertThat(anotherCss.getSsRsrp()).isEqualTo(SSRSRP); assertThat(anotherCss.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(anotherCss.getSsRsrq()).isEqualTo(SSRSRQ); assertThat(anotherCss.getSsSinr()).isEqualTo(SSSINR); assertThat(anotherCss.getSsSinr()).isEqualTo(SSSINR); Loading
tests/telephonytests/src/com/android/internal/telephony/SignalStrengthTest.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.JUnit4; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.List; /** Unit tests for {@link IpSecConfig}. */ /** Unit tests for {@link IpSecConfig}. */ Loading Loading @@ -88,13 +90,14 @@ public class SignalStrengthTest { public void testParcelUnparcel() throws Exception { public void testParcelUnparcel() throws Exception { assertParcelingIsLossless(new SignalStrength()); assertParcelingIsLossless(new SignalStrength()); List<Integer> NrCqiReport = new ArrayList<>(Arrays.asList(3, 2, 1)); SignalStrength s = new SignalStrength( SignalStrength s = new SignalStrength( new CellSignalStrengthCdma(-93, -132, -89, -125, 5), new CellSignalStrengthCdma(-93, -132, -89, -125, 5), new CellSignalStrengthGsm(-79, 2, 5), new CellSignalStrengthGsm(-79, 2, 5), new CellSignalStrengthWcdma(-94, 4, -102, -5), new CellSignalStrengthWcdma(-94, 4, -102, -5), new CellSignalStrengthTdscdma(-95, 2, -103), new CellSignalStrengthTdscdma(-95, 2, -103), new CellSignalStrengthLte(-85, -91, -6, -10, 12, 1), new CellSignalStrengthLte(-85, -91, -6, -10, 1, 12, 1), new CellSignalStrengthNr(-91, -6, 3, -80, -7, 4)); new CellSignalStrengthNr(-91, -6, 3, 1, NrCqiReport, -80, -7, 4)); assertParcelingIsLossless(s); assertParcelingIsLossless(s); PersistableBundle bundle = new PersistableBundle(); PersistableBundle bundle = new PersistableBundle(); Loading Loading @@ -125,7 +128,7 @@ public class SignalStrengthTest { @Test @Test public void testGetCellSignalStrengths() throws Exception { public void testGetCellSignalStrengths() throws Exception { CellSignalStrengthLte lte = new CellSignalStrengthLte(-85, -91, -6, -10, 12, 1); CellSignalStrengthLte lte = new CellSignalStrengthLte(-85, -91, -6, -10, 1, 12, 1); CellSignalStrengthGsm gsm = new CellSignalStrengthGsm(-79, 2, 5); CellSignalStrengthGsm gsm = new CellSignalStrengthGsm(-79, 2, 5); CellSignalStrengthCdma cdma = new CellSignalStrengthCdma(-93, -132, -89, -125, 5); CellSignalStrengthCdma cdma = new CellSignalStrengthCdma(-93, -132, -89, -125, 5); CellSignalStrengthWcdma wcdma = new CellSignalStrengthWcdma(-94, 4, -102, -5); CellSignalStrengthWcdma wcdma = new CellSignalStrengthWcdma(-94, 4, -102, -5); Loading Loading @@ -166,6 +169,7 @@ public class SignalStrengthTest { lteRsrp, // rsrp lteRsrp, // rsrp lteRsrq, // rsrq lteRsrq, // rsrq -25, // rssnr -25, // rssnr CellInfo.UNAVAILABLE, // cqiTableIndex CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE); // timingAdvance CellInfo.UNAVAILABLE); // timingAdvance Loading Loading @@ -198,6 +202,7 @@ public class SignalStrengthTest { lteRsrp, // rsrp lteRsrp, // rsrp 15, // rsrq 15, // rsrq lteRssnr, // rssnr lteRssnr, // rssnr CellInfo.UNAVAILABLE, // cqiTableIndex CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE, // cqi CellInfo.UNAVAILABLE); // timingAdvance CellInfo.UNAVAILABLE); // timingAdvance Loading