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

Commit f419d33c authored by Jack Yu's avatar Jack Yu Committed by Sarah Chin
Browse files

Fixed the incorrect APN dedupling

Fixed that APN settings can't be merged when one APN
entry has MTU set, but the other doesn't. Also default
MTU unset value to 0 for backwards compatability.

Test: atest DataProfileManagerTest & Manual testing
Fix: 226563054
Change-Id: I02190be62855f5f3b86c41677bbf7ff6a362e652
Merged-In: I02190be62855f5f3b86c41677bbf7ff6a362e652
parent 217b0fdb
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -1290,8 +1290,8 @@ public class ApnSetting implements Parcelable {
                && Objects.equals(this.mOperatorNumeric, other.mOperatorNumeric)
                && Objects.equals(this.mProtocol, other.mProtocol)
                && Objects.equals(this.mRoamingProtocol, other.mRoamingProtocol)
                && xorEqualsInt(this.mMtuV4, other.mMtuV4)
                && xorEqualsInt(this.mMtuV6, other.mMtuV6)
                && mtuUnsetOrEquals(this.mMtuV4, other.mMtuV4)
                && mtuUnsetOrEquals(this.mMtuV6, other.mMtuV6)
                && Objects.equals(this.mCarrierEnabled, other.mCarrierEnabled)
                && Objects.equals(this.mNetworkTypeBitmask, other.mNetworkTypeBitmask)
                && Objects.equals(this.mLingeringNetworkTypeBitmask,
@@ -1319,7 +1319,12 @@ public class ApnSetting implements Parcelable {
    // Equal or one is not specified.
    private boolean xorEqualsInt(int first, int second) {
        return first == UNSPECIFIED_INT || second == UNSPECIFIED_INT
            || Objects.equals(first, second);
                || first == second;
    }

    // Equal or one is not specified. Specific to MTU where <= 0 indicates unset.
    private boolean mtuUnsetOrEquals(int first, int second) {
        return first <= 0 || second <= 0 || first == second;
    }

    private String nullToEmpty(String stringValue) {