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

Commit 2217a0c7 authored by Danny Baumann's avatar Danny Baumann
Browse files

Make sure the APN setting list is never null.

Change-Id: Ia3b6a722a3e473f20dccded7b519a550e5d0c733
parent 8c08c03f
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();
                }
@@ -2867,7 +2863,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);
@@ -3462,10 +3458,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)) {
@@ -3474,12 +3469,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;