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

Commit c55fdeb2 authored by Jack Yu's avatar Jack Yu Committed by Gerrit Code Review
Browse files

Merge "Prevent unnecessary building APN candidates"

parents 898b4cca d2052554
Loading
Loading
Loading
Loading
+17 −21
Original line number Diff line number Diff line
@@ -3291,17 +3291,12 @@ public class DcTracker extends Handler {
                    apnList = sortApnListByPreferred(apnList);
                    if (DBG) log("buildWaitingApns: X added preferred apnList=" + apnList);
                    return apnList;
                } else {
                    if (DBG) log("buildWaitingApns: no preferred APN");
                    setPreferredApn(-1);
                    mPreferredApn = null;
                }
            } else {
            }
            if (DBG) log("buildWaitingApns: no preferred APN");
            setPreferredApn(-1);
            mPreferredApn = null;
        }
        }

        if (DBG) log("buildWaitingApns: mAllApnSettings=" + mAllApnSettings);
        for (ApnSetting apn : mAllApnSettings) {
@@ -4190,6 +4185,7 @@ public class DcTracker extends Handler {
                return;
            }
            for (ApnContext apnContext : mApnContexts.values()) {
                if (!apnContext.isDisconnected()) {
                    ArrayList<ApnSetting> currentWaitingApns = apnContext.getWaitingApns();
                    ArrayList<ApnSetting> waitingApns = buildWaitingApns(
                            apnContext.getApnType(), getDataRat());
@@ -4198,11 +4194,11 @@ public class DcTracker extends Handler {
                            && ((waitingApns.size() != currentWaitingApns.size())
                            // Check if the existing waiting APN list can cover the newly built APN
                            // list. If yes, then we don't need to tear down the existing data call.
                        // TODO: We probably need to rebuild APN list when roaming status changes.
                            // TODO: We probably need to rebuild APN list when roaming status
                            //  changes.
                            || !containsAllApns(currentWaitingApns, waitingApns))) {
                        if (VDBG) log("new waiting apn is different for " + apnContext);
                        apnContext.setWaitingApns(waitingApns);
                    if (!apnContext.isDisconnected()) {
                        if (VDBG) log("cleanUpConnectionsOnUpdatedApns for " + apnContext);
                        apnContext.setReason(reason);
                        cleanUpConnectionInternal(true, RELEASE_TYPE_DETACH, apnContext);