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

Commit f2c1ee61 authored by dhacker29's avatar dhacker29
Browse files

CdmaLte: Fix 3G reported as unknown on certain devices

Some older CDMA/LTE RILs only report VoiceRadioTechnology which
results in network Unknown. In these cases return
RilVoiceRadioTechnology for RilDataRadioTechnology.

Set ro.telephony.ril.v3=usevoicetechfordata to enable

Change-Id: Icfbc8739993beae1b0f024bf71374751aa200a01
parent b4e19167
Loading
Loading
Loading
Loading
+13 −1
Original line number Original line Diff line number Diff line
@@ -46,7 +46,7 @@ import java.util.List;
public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
    private CDMALTEPhone mCdmaLtePhone;
    private CDMALTEPhone mCdmaLtePhone;
    private final CellInfoLte mCellInfoLte;
    private final CellInfoLte mCellInfoLte;

    protected int mNewRilRadioTechnology = 0;
    private CellIdentityLte mNewCellIdentityLte = new CellIdentityLte();
    private CellIdentityLte mNewCellIdentityLte = new CellIdentityLte();
    private CellIdentityLte mLasteCellIdentityLte = new CellIdentityLte();
    private CellIdentityLte mLasteCellIdentityLte = new CellIdentityLte();


@@ -249,6 +249,18 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {


    @Override
    @Override
    protected void pollStateDone() {
    protected void pollStateDone() {
        // Some older CDMA/LTE RILs only report VoiceRadioTechnology which results in network
        // Unknown. In these cases return RilVoiceRadioTechnology for RilDataRadioTechnology.
        boolean oldRil = mCi.needsOldRilFeature("usevoicetechfordata");
        if (mNewSS.getDataRegState() != ServiceState.STATE_IN_SERVICE && oldRil) {
            // LTE out of service, get CDMA Service State
            mNewRilRadioTechnology = mNewSS.getRilVoiceRadioTechnology();
            mNewSS.setRilDataRadioTechnology(mNewRilRadioTechnology);
            log("pollStateDone CDMA STATE_IN_SERVICE mNewRilRadioTechnology = " +
                    mNewRilRadioTechnology + " mNewSS.getDataRegState() = " +
                    mNewSS.getDataRegState());
        }

        log("pollStateDone: lte 1 ss=[" + mSS + "] newSS=[" + mNewSS + "]");
        log("pollStateDone: lte 1 ss=[" + mSS + "] newSS=[" + mNewSS + "]");


        useDataRegStateForDataOnlyDevices();
        useDataRegStateForDataOnlyDevices();