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

Commit bca51fc3 authored by Sungmin Choi's avatar Sungmin Choi Committed by Thierry Strudel
Browse files

Use apn id which contains default type when merging apns

In case of the following conditions, UI does not show preferred apn.
1. there are default and mms profile, respectively.
2. apns for default and mms are same.
3. mms profile is prior to default profile.

To fix it, use apn id which contains default type when merging apns.

Bug: 22641500
Change-Id: Ieec521f715f137aa7a827ee010390e3c47b35da1
parent 4fa569c2
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2392,10 +2392,12 @@ public final class DcTracker extends DcTrackerBase {
    }

    private ApnSetting mergeApns(ApnSetting dest, ApnSetting src) {
        int id = dest.id;
        ArrayList<String> resultTypes = new ArrayList<String>();
        resultTypes.addAll(Arrays.asList(dest.types));
        for (String srcType : src.types) {
            if (resultTypes.contains(srcType) == false) resultTypes.add(srcType);
            if (srcType.equals(PhoneConstants.APN_TYPE_DEFAULT)) id = src.id;
        }
        String mmsc = (TextUtils.isEmpty(dest.mmsc) ? src.mmsc : dest.mmsc);
        String mmsProxy = (TextUtils.isEmpty(dest.mmsProxy) ? src.mmsProxy : dest.mmsProxy);
@@ -2408,7 +2410,7 @@ public final class DcTracker extends DcTrackerBase {
        int bearerBitmask = (dest.bearerBitmask == 0 || src.bearerBitmask == 0) ?
                0 : (dest.bearerBitmask | src.bearerBitmask);

        return new ApnSetting(dest.id, dest.numeric, dest.carrier, dest.apn,
        return new ApnSetting(id, dest.numeric, dest.carrier, dest.apn,
                proxy, port, mmsc, mmsProxy, mmsPort, dest.user, dest.password,
                dest.authType, resultTypes.toArray(new String[0]), protocol,
                roamingProtocol, dest.carrierEnabled, 0, bearerBitmask, dest.profileId,