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

Commit 8be479ba authored by Sandeep Gutta's avatar Sandeep Gutta Committed by Gerrit - the friendly Code Review server
Browse files

Add Dual Transfer Mode support.

In GsmServiceStateTracker, decode the "concurrent services support
indicator" field from RIL_REQUEST_VOICE_REGISTRATION_STATE
request and based on the value of this CSSI field allow concurrent
CS and PS services to applications.

Change-Id: Iebf43ed14ff38d88b06f7bb43d11365de6433b81
CRs-Fixed: 564063
parent 9aa80c0b
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -642,6 +642,7 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
                    int regState = ServiceState.RIL_REG_STATE_UNKNOWN;
                    int reasonRegStateDenied = -1;
                    int psc = -1;
                    int cssIndicator = 0;
                    if (states.length > 0) {
                        try {
                            regState = Integer.parseInt(states[0]);
@@ -658,6 +659,9 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
                                    type = Integer.parseInt(states[3]);
                                }
                            }
                            if (states.length >= 7 && (states[7] != null)) {
                                cssIndicator = Integer.parseInt(states[7]);
                            }
                            if (states.length > 14) {
                                if (states[14] != null && states[14].length() > 0) {
                                    psc = Integer.parseInt(states[14], 16);
@@ -671,6 +675,7 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
                    mGsmRoaming = regCodeIsRoaming(regState);
                    mNewSS.setState(regCodeToServiceState(regState));
                    mNewSS.setRilVoiceRadioTechnology(type);
                    mNewSS.setCssIndicator(cssIndicator);

                    if ((regState == ServiceState.RIL_REG_STATE_DENIED
                            || regState == ServiceState.RIL_REG_STATE_DENIED_EMERGENCY_CALL_ENABLED)
@@ -1459,11 +1464,16 @@ public class GsmServiceStateTracker extends ServiceStateTracker {

    /**
     * @return true if phone is camping on a technology (eg UMTS)
     * that could support voice and data simultaneously.
     * that could support voice and data simultaneously or
     * concurrent services support indicator is set to '1'.
     */
    @Override
    public boolean isConcurrentVoiceAndDataAllowed() {
        return (mSS.getRilDataRadioTechnology() >= ServiceState.RIL_RADIO_TECHNOLOGY_UMTS);
        if (mSS.getRilDataRadioTechnology() >= ServiceState.RIL_RADIO_TECHNOLOGY_UMTS) {
            return true;
        } else {
            return mSS.getCssIndicator() == 1;
        }
    }

    /**