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

Commit 19df8124 authored by Eric Schwarzenbach's avatar Eric Schwarzenbach Committed by Android (Google) Code Review
Browse files

Merge "Update ServiceState channel number from regState." into pi-dev

parents 1ff35181 99cc5e6a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1753,6 +1753,7 @@ public class ServiceStateTracker extends Handler {
                mNewSS.setCssIndicator(cssIndicator);
                mNewSS.setRilVoiceRadioTechnology(newVoiceRat);
                mNewSS.addNetworkRegistrationState(networkRegState);
                setChannelNumberFromCellIdentity(mNewSS, networkRegState.getCellIdentity());

                //Denial reason if registrationState = 3
                int reasonForDenial = networkRegState.getReasonForDenial();
@@ -1828,6 +1829,7 @@ public class ServiceStateTracker extends Handler {
                mNewSS.setDataRegState(serviceState);
                mNewSS.setRilDataRadioTechnology(newDataRat);
                mNewSS.addNetworkRegistrationState(networkRegState);
                setChannelNumberFromCellIdentity(mNewSS, networkRegState.getCellIdentity());

                if (mPhone.isPhoneTypeGsm()) {

@@ -1966,6 +1968,20 @@ public class ServiceStateTracker extends Handler {
        }
    }

    private void setChannelNumberFromCellIdentity(ServiceState ss, CellIdentity cellIdentity) {
        if (cellIdentity == null) {
            if (DBG) {
                log("Could not set ServiceState channel number. CellIdentity null");
            }
            return;
        }

        ss.setChannelNumber(cellIdentity.getChannelNumber());
        if (VDBG) {
            log("Setting channel number: " + cellIdentity.getChannelNumber());
        }
    }

    /**
     * Determine whether a roaming indicator is in the carrier-specified list of ERIs for
     * home system
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public class CellIdentityGsmTest extends AndroidTestCase {
        assertEquals(LAC, ci.getLac());
        assertEquals(CID, ci.getCid());
        assertEquals(ARFCN, ci.getArfcn());
        assertEquals(ARFCN, ci.getChannelNumber());
        assertEquals(BSIC, ci.getBsic());
        assertEquals(MCC, ci.getMcc());
        assertEquals(MNC, ci.getMnc());
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ public class CellIdentityLteTest extends AndroidTestCase {
        assertEquals(PCI, ci.getPci());
        assertEquals(TAC, ci.getTac());
        assertEquals(EARFCN, ci.getEarfcn());
        assertEquals(EARFCN, ci.getChannelNumber());
        assertEquals(BANDWIDTH, ci.getBandwidth());
        assertEquals(MCC, ci.getMcc());
        assertEquals(MNC, ci.getMnc());
+2 −0
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ public class CellIdentityWcdmaTest extends AndroidTestCase {
        assertEquals(LAC, ci.getLac());
        assertEquals(CID, ci.getCid());
        assertEquals(PSC, ci.getPsc());
        assertEquals(UARFCN, ci.getUarfcn());
        assertEquals(UARFCN, ci.getChannelNumber());
        assertEquals(MCC, ci.getMcc());
        assertEquals(MNC, ci.getMnc());
        assertEquals(MCC_STR, ci.getMccString());
+40 −0
Original line number Diff line number Diff line
@@ -306,4 +306,44 @@ public class ServiceStateTest extends TestCase {
        assertEquals(ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN,
                NetworkRegistrationState.DOMAIN_PS), wwanDataRegState);
    }

    @SmallTest
    public void testDuplexMode_notLte() {
        ServiceState ss = new ServiceState();
        ss.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_GSM);
        ss.setChannelNumber(2400);

        assertEquals(ss.getDuplexMode(), ServiceState.DUPLEX_MODE_UNKNOWN);
    }

    @SmallTest
    public void testDuplexMode_invalidEarfcn() {
        ServiceState ss = new ServiceState();
        ss.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
        ss.setChannelNumber(-1);

        assertEquals(ss.getDuplexMode(), ServiceState.DUPLEX_MODE_UNKNOWN);

        ss.setChannelNumber(Integer.MAX_VALUE);

        assertEquals(ss.getDuplexMode(), ServiceState.DUPLEX_MODE_UNKNOWN);
    }

    @SmallTest
    public void testDuplexMode_FddChannel() {
        ServiceState ss = new ServiceState();
        ss.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
        ss.setChannelNumber(2400); // band 5

        assertEquals(ss.getDuplexMode(), ServiceState.DUPLEX_MODE_FDD);
    }

    @SmallTest
    public void testDuplexMode_TddChannel() {
        ServiceState ss = new ServiceState();
        ss.setRilDataRadioTechnology(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
        ss.setChannelNumber(36000); // band 33

        assertEquals(ss.getDuplexMode(), ServiceState.DUPLEX_MODE_TDD);
    }
}