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

Commit 9b374aa6 authored by Eric Schwarzenbach's avatar Eric Schwarzenbach Committed by android-build-merger
Browse files

Merge "Update ServiceState channel number from regState." am: 48e0d450 am: db659f8a

am: c79a1c83

Change-Id: I29f92eb4b6620964ea289a0d3ed2a282894463fc
parents 29a25a0f c79a1c83
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1765,6 +1765,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();
@@ -1840,6 +1841,7 @@ public class ServiceStateTracker extends Handler {
                mNewSS.setDataRegState(serviceState);
                mNewSS.setRilDataRadioTechnology(newDataRat);
                mNewSS.addNetworkRegistrationState(networkRegState);
                setChannelNumberFromCellIdentity(mNewSS, networkRegState.getCellIdentity());

                if (mPhone.isPhoneTypeGsm()) {

@@ -1978,6 +1980,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);
    }
}