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

Commit 01ba12b8 authored by Shareef Ali's avatar Shareef Ali Committed by Gerrit Code Review
Browse files

Merge "Telephony: DcTracker: Fix CDMA APN Data issues." into cm-11.0

parents 42d4645b 64886481
Loading
Loading
Loading
Loading
+31 −7
Original line number Diff line number Diff line
@@ -757,6 +757,7 @@ public class DcTracker extends DcTrackerBase {
    }

    private boolean trySetupData(ApnContext apnContext) {
        boolean retValue = false;
        if (DBG) {
            log("trySetupData for type:" + apnContext.getDataProfileType() +
                    " due to " + apnContext.getReason() + " apnContext=" + apnContext);
@@ -809,14 +810,16 @@ public class DcTracker extends DcTrackerBase {
            }
            int radioTech = mPhone.getServiceState().getRilDataRadioTechnology();
            if (apnContext.getState() == DctConstants.State.IDLE) {

                ArrayList<DataProfile> waitingDps =
                        buildWaitingApns(apnContext.getDataProfileType(), radioTech);
                if (waitingDps.isEmpty()) {
                    notifyOffApnsOfAvailability(apnContext.getReason());
                    retValue = setupData(apnContext, radioTech);
                    if(!retValue) {
                        notifyNoData(DcFailCause.MISSING_UNKNOWN_APN, apnContext);
                    }
                    notifyOffApnsOfAvailability(apnContext.getReason());
                    if (DBG) log("trySetupData: X No APN found retValue=false");
                    return false;
                    return retValue;
                } else {
                    apnContext.setWaitingDataProfiles(waitingDps);
                    if (DBG) {
@@ -830,7 +833,7 @@ public class DcTracker extends DcTrackerBase {
                log("trySetupData: call setupData, waitingApns : "
                        + apnListToString(apnContext.getWaitingApns()));
            }
            boolean retValue = setupData(apnContext, radioTech);
            retValue = setupData(apnContext, radioTech);
            notifyOffApnsOfAvailability(apnContext.getReason());

            if (DBG) log("trySetupData: X retValue=" + retValue);
@@ -1185,9 +1188,30 @@ public class DcTracker extends DcTrackerBase {
        int profileId = getApnProfileID(apnContext.getDataProfileType());
        apnSetting = apnContext.getNextWaitingApn();
        if (apnSetting == null) {
            if(PhoneConstants.PHONE_TYPE_CDMA==mPhone.getPhoneType()) {
                String[] mDunApnTypes = { PhoneConstants.APN_TYPE_DUN };
                final int mDefaultApnId = DctConstants.APN_DEFAULT_ID;
                final String[] mDefaultApnTypes = {
                    PhoneConstants.APN_TYPE_DEFAULT,
                    PhoneConstants.APN_TYPE_MMS,
                    PhoneConstants.APN_TYPE_HIPRI };
                String[] types;
                int apnId;
                if (mRequestedApnType.equals(PhoneConstants.APN_TYPE_DUN)) {
                    types = mDunApnTypes;
                    apnId = DctConstants.APN_DUN_ID;
                } else {
                    types = mDefaultApnTypes;
                    apnId = mDefaultApnId;
                }
                apnSetting = new ApnSetting(apnId, "", "", "", "", "", "", "", "", "",
                                            "", 0, types, "IP", "IP", true, 0);
                if (DBG) log("setupData: CDMA detected and apnSetting == null, use stubbed CDMA APN setting= " + apnSetting);
            } else {
                if (DBG) log("setupData: return for no apn found!");
                return false;
            }
        }

        dcac = checkForCompatibleConnectedApnContext(apnContext);
        if (dcac != null) {