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

Commit cea05071 authored by Mingming Cai's avatar Mingming Cai Committed by Gerrit Code Review
Browse files

Merge "Add response and indication for CellInfo Hal 1.6"

parents d43800b4 cfb0d600
Loading
Loading
Loading
Loading
+25 −1
Original line number Original line Diff line number Diff line
@@ -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);
            }
            }
@@ -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);
+28 −0
Original line number Original line Diff line number Diff line
@@ -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);
@@ -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);


@@ -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);


+24 −0
Original line number Original line Diff line number Diff line
@@ -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
     */
     */
@@ -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);
+52 −33
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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));
@@ -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);
@@ -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(
@@ -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);
@@ -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();
@@ -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);
+8 −3
Original line number Original line Diff line number Diff line
@@ -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}. */
@@ -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();
@@ -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);
@@ -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


@@ -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