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

Commit 1d470caa authored by Jack Yu's avatar Jack Yu
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
parent 75fb4d30
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -1293,8 +1293,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,
@@ -1322,7 +1322,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) {