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

Commit c7efcf3d authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by android-build-merger
Browse files

Merge "Add NetworkRegistrationState into SS's list." am: 619ff7ec

am: f800390e

Change-Id: Ie01e820387704a1dfdc9b5197eb39b1772ad2265
parents 60bc8a39 f800390e
Loading
Loading
Loading
Loading
+31 −26
Original line number Diff line number Diff line
@@ -1724,21 +1724,22 @@ public class ServiceStateTracker extends Handler {
        int ints[];
        switch (what) {
            case EVENT_POLL_STATE_REGISTRATION: {
                NetworkRegistrationState regStates = (NetworkRegistrationState) ar.result;
                NetworkRegistrationState networkRegState = (NetworkRegistrationState) ar.result;
                VoiceSpecificRegistrationStates voiceSpecificStates =
                        regStates.getVoiceSpecificStates();
                        networkRegState.getVoiceSpecificStates();

                int registrationState = regStates.getRegState();
                int registrationState = networkRegState.getRegState();
                int cssIndicator = voiceSpecificStates.cssSupported ? 1 : 0;
                int newVoiceRat = ServiceState.networkTypeToRilRadioTechnology(
                        regStates.getAccessNetworkTechnology());
                        networkRegState.getAccessNetworkTechnology());

                mNewSS.setVoiceRegState(regCodeToServiceState(registrationState));
                mNewSS.setCssIndicator(cssIndicator);
                mNewSS.setRilVoiceRadioTechnology(newVoiceRat);
                mNewSS.addNetworkRegistrationState(networkRegState);

                //Denial reason if registrationState = 3
                int reasonForDenial = regStates.getReasonForDenial();
                int reasonForDenial = networkRegState.getReasonForDenial();
                if (mPhone.isPhoneTypeGsm()) {

                    mGsmRoaming = regCodeIsRoaming(registrationState);
@@ -1746,7 +1747,7 @@ public class ServiceStateTracker extends Handler {

                    boolean isVoiceCapable = mPhone.getContext().getResources()
                            .getBoolean(com.android.internal.R.bool.config_voice_capable);
                    mEmergencyOnly = regStates.isEmergencyEnabled();
                    mEmergencyOnly = networkRegState.isEmergencyEnabled();
                } else {
                    int roamingIndicator = voiceSpecificStates.roamingIndicator;

@@ -1771,7 +1772,7 @@ public class ServiceStateTracker extends Handler {

                    int systemId = 0;
                    int networkId = 0;
                    CellIdentity cellIdentity = regStates.getCellIdentity();
                    CellIdentity cellIdentity = networkRegState.getCellIdentity();
                    if (cellIdentity != null && cellIdentity.getType() == CellInfoType.CDMA) {
                        systemId = ((CellIdentityCdma) cellIdentity).getSystemId();
                        networkId = ((CellIdentityCdma) cellIdentity).getNetworkId();
@@ -1791,7 +1792,7 @@ public class ServiceStateTracker extends Handler {
                    }
                }

                processCellLocationInfo(mNewCellLoc, regStates.getCellIdentity());
                processCellLocationInfo(mNewCellLoc, networkRegState.getCellIdentity());

                if (DBG) {
                    log("handlPollVoiceRegResultMessage: regState=" + registrationState
@@ -1801,33 +1802,34 @@ public class ServiceStateTracker extends Handler {
            }

            case EVENT_POLL_STATE_GPRS: {
                NetworkRegistrationState regStates = (NetworkRegistrationState) ar.result;
                NetworkRegistrationState networkRegState = (NetworkRegistrationState) ar.result;
                DataSpecificRegistrationStates dataSpecificStates =
                        regStates.getDataSpecificStates();
                int regState = regStates.getRegState();
                int serviceState = regCodeToServiceState(regState);
                        networkRegState.getDataSpecificStates();
                int registrationState = networkRegState.getRegState();
                int serviceState = regCodeToServiceState(registrationState);
                int newDataRat = ServiceState.networkTypeToRilRadioTechnology(
                        regStates.getAccessNetworkTechnology());
                        networkRegState.getAccessNetworkTechnology());
                mNewSS.setDataRegState(serviceState);
                mNewSS.setRilDataRadioTechnology(newDataRat);
                mNewSS.addNetworkRegistrationState(networkRegState);

                if (mPhone.isPhoneTypeGsm()) {

                    mNewReasonDataDenied = regStates.getReasonForDenial();
                    mNewReasonDataDenied = networkRegState.getReasonForDenial();
                    mNewMaxDataCalls = dataSpecificStates.maxDataCalls;
                    mDataRoaming = regCodeIsRoaming(regState);
                    mDataRoaming = regCodeIsRoaming(registrationState);
                    // Save the data roaming state reported by modem registration before resource
                    // overlay or carrier config possibly overrides it.
                    mNewSS.setDataRoamingFromRegistration(mDataRoaming);

                    if (DBG) {
                        log("handlPollStateResultMessage: GsmSST dataServiceState=" + serviceState
                                + " regState=" + regState
                                + " regState=" + registrationState
                                + " dataRadioTechnology=" + newDataRat);
                    }
                } else if (mPhone.isPhoneTypeCdma()) {

                    boolean isDataRoaming = regCodeIsRoaming(regState);
                    boolean isDataRoaming = regCodeIsRoaming(registrationState);
                    mNewSS.setDataRoaming(isDataRoaming);
                    // Save the data roaming state reported by modem registration before resource
                    // overlay or carrier config possibly overrides it.
@@ -1835,7 +1837,7 @@ public class ServiceStateTracker extends Handler {

                    if (DBG) {
                        log("handlPollStateResultMessage: cdma dataServiceState=" + serviceState
                                + " regState=" + regState
                                + " regState=" + registrationState
                                + " dataRadioTechnology=" + newDataRat);
                    }
                } else {
@@ -1856,19 +1858,20 @@ public class ServiceStateTracker extends Handler {
                    }

                    // voice roaming state in done while handling EVENT_POLL_STATE_REGISTRATION_CDMA
                    boolean isDataRoaming = regCodeIsRoaming(regState);
                    boolean isDataRoaming = regCodeIsRoaming(registrationState);
                    mNewSS.setDataRoaming(isDataRoaming);
                    // Save the data roaming state reported by modem registration before resource
                    // overlay or carrier config possibly overrides it.
                    mNewSS.setDataRoamingFromRegistration(isDataRoaming);
                    if (DBG) {
                        log("handlPollStateResultMessage: CdmaLteSST dataServiceState="
                                + serviceState + " regState=" + regState + " dataRadioTechnology="
                                + newDataRat);
                                + serviceState + " registrationState=" + registrationState
                                + " dataRadioTechnology=" + newDataRat);
                    }
                }

                updateServiceStateLteEarfcnBoost(mNewSS, getLteEarfcn(regStates.getCellIdentity()));
                updateServiceStateLteEarfcnBoost(mNewSS,
                        getLteEarfcn(networkRegState.getCellIdentity()));
                break;
            }

@@ -1878,8 +1881,9 @@ public class ServiceStateTracker extends Handler {

                    if (opNames != null && opNames.length >= 3) {
                        // FIXME: Giving brandOverride higher precedence, is this desired?
                        String brandOverride = mUiccController.getUiccCard(getPhoneId()) != null ?
                                mUiccController.getUiccCard(getPhoneId()).getOperatorBrandOverride() : null;
                        String brandOverride = mUiccController.getUiccCard(getPhoneId()) != null
                                ? mUiccController.getUiccCard(getPhoneId())
                                        .getOperatorBrandOverride() : null;
                        if (brandOverride != null) {
                            log("EVENT_POLL_STATE_OPERATOR: use brandOverride=" + brandOverride);
                            mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]);
@@ -1909,8 +1913,9 @@ public class ServiceStateTracker extends Handler {
                            // NV device (as opposed to CSIM)
                            mNewSS.setOperatorName(opNames[0], opNames[1], opNames[2]);
                        } else {
                            String brandOverride = mUiccController.getUiccCard(getPhoneId()) != null ?
                                    mUiccController.getUiccCard(getPhoneId()).getOperatorBrandOverride() : null;
                            String brandOverride = mUiccController.getUiccCard(getPhoneId()) != null
                                    ? mUiccController.getUiccCard(getPhoneId())
                                    .getOperatorBrandOverride() : null;
                            if (brandOverride != null) {
                                mNewSS.setOperatorName(brandOverride, brandOverride, opNames[2]);
                            } else {
+43 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.internal.telephony;

import android.os.Bundle;
import android.os.Parcel;
import android.telephony.AccessNetworkConstants;
import android.telephony.NetworkRegistrationState;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.SmallTest;
@@ -264,4 +266,44 @@ public class ServiceStateTest extends TestCase {

        assertEquals(ss, newSs);
    }

    @SmallTest
    public void testNetworkRegistrationState() {
        NetworkRegistrationState wwanVoiceRegState = new NetworkRegistrationState(
                AccessNetworkConstants.TransportType.WWAN, NetworkRegistrationState.DOMAIN_CS,
                0, 0, 0, false,
                null, null, true, 0, 0, 0);


        NetworkRegistrationState wwanDataRegState = new NetworkRegistrationState(
                AccessNetworkConstants.TransportType.WWAN, NetworkRegistrationState.DOMAIN_PS,
                0, 0, 0, false,
                null, null, 0);

        NetworkRegistrationState wlanRegState = new NetworkRegistrationState(
                AccessNetworkConstants.TransportType.WLAN, NetworkRegistrationState.DOMAIN_PS,
                0, 0, 0, false,
                null, null);

        ServiceState ss = new ServiceState();

        ss.addNetworkRegistrationState(wwanVoiceRegState);
        ss.addNetworkRegistrationState(wwanDataRegState);
        ss.addNetworkRegistrationState(wlanRegState);

        assertEquals(ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN,
                NetworkRegistrationState.DOMAIN_CS), wwanVoiceRegState);
        assertEquals(ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN,
                NetworkRegistrationState.DOMAIN_PS), wwanDataRegState);
        assertEquals(ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WLAN,
                NetworkRegistrationState.DOMAIN_PS), wlanRegState);

        wwanDataRegState = new NetworkRegistrationState(
                AccessNetworkConstants.TransportType.WWAN, NetworkRegistrationState.DOMAIN_PS,
                0, 0, 0, true,
                null, null, 0);
        ss.addNetworkRegistrationState(wwanDataRegState);
        assertEquals(ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN,
                NetworkRegistrationState.DOMAIN_PS), wwanDataRegState);
    }
}