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

Commit 528537fd authored by Danny Baumann's avatar Danny Baumann Committed by Gerrit Code Review
Browse files

Make sure the APN setting list is never null.

CYNGNOS-1415
Change-Id: Ia3b6a722a3e473f20dccded7b519a550e5d0c733
(cherry picked from commit 2217a0c7)
parent 8780512c
Loading
Loading
Loading
Loading
+22 −29
Original line number Diff line number Diff line
@@ -754,13 +754,11 @@ public final class DcTracker extends DcTrackerBase {
            return true;
        }

        if (mAllApnSettings != null) {
        for (ApnSetting apn : mAllApnSettings) {
            if (apn.canHandleType(type)) {
                return true;
            }
        }
        }
        return false;
    }

@@ -1764,7 +1762,7 @@ public final class DcTracker extends DcTrackerBase {
        if (DBG) log("onSimNotReady");

        cleanUpAllConnections(true, Phone.REASON_SIM_NOT_READY);
        mAllApnSettings = null;
        mAllApnSettings.clear();
        mAutoAttachOnCreationConfig = false;
    }

@@ -2543,9 +2541,7 @@ public final class DcTracker extends DcTrackerBase {
     * Data Connections and setup the preferredApn.
     */
    private void createAllApnList() {
        if (mAllApnSettings != null) {
        mAllApnSettings.clear();
        }
        String operator = getOperatorNumeric();
        int radioTech = mPhone.getServiceState().getRilDataRadioTechnology();

@@ -2572,7 +2568,7 @@ public final class DcTracker extends DcTrackerBase {

                if (cursor != null) {
                    if (cursor.getCount() > 0) {
                        mAllApnSettings = createApnList(cursor, mIccRecords.get());
                        mAllApnSettings.addAll(createApnList(cursor, mIccRecords.get()));
                    }
                    cursor.close();
                }
@@ -2870,7 +2866,7 @@ public final class DcTracker extends DcTrackerBase {
                mPreferredApn = null;
            }
        }
        if (mAllApnSettings != null && !mAllApnSettings.isEmpty()) {
        if (!mAllApnSettings.isEmpty()) {
            if (DBG) log("buildWaitingApns: mAllApnSettings=" + mAllApnSettings);
            for (ApnSetting apn : mAllApnSettings) {
                if (DBG) log("buildWaitingApns: apn=" + apn);
@@ -3465,10 +3461,9 @@ public final class DcTracker extends DcTrackerBase {
     * Add the Emergency APN settings to APN settings list
     */
    private void addEmergencyApnSetting() {
        if(mEmergencyApn != null) {
            if(mAllApnSettings == null) {
                mAllApnSettings = new ArrayList<ApnSetting>();
            } else {
        if (mEmergencyApn == null) {
            return;
        }
        boolean hasEmergencyApn = false;
        for (ApnSetting apn : mAllApnSettings) {
            if (ArrayUtils.contains(apn.types, PhoneConstants.APN_TYPE_EMERGENCY)) {
@@ -3477,12 +3472,10 @@ public final class DcTracker extends DcTrackerBase {
            }
        }

                if(hasEmergencyApn == false) {
        if (!hasEmergencyApn) {
            mAllApnSettings.add(mEmergencyApn);
        } else {
            log("addEmergencyApnSetting - E-APN setting is already present");
        }
    }
}
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ public abstract class DcTrackerBase extends Handler {
    protected ApnSetting mActiveApn;

    /** allApns holds all apns */
    protected ArrayList<ApnSetting> mAllApnSettings = new ArrayList<ApnSetting>();
    protected final ArrayList<ApnSetting> mAllApnSettings = new ArrayList<ApnSetting>();

    /** preferred apn */
    protected ApnSetting mPreferredApn = null;