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

Commit fac4eefe authored by Brad Ebinger's avatar Brad Ebinger Committed by Automerger Merge Worker
Browse files

Merge "Ensure mForwardNumber is null if modem returns empty String or null"...

Merge "Ensure mForwardNumber is null if modem returns empty String or null" into sc-dev am: 92694894 am: f6850746 am: 168596cd

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/15720056

Change-Id: I27d10551827fca96c7012b4fa6e57fb3383b8e2d
parents b6a7a983 168596cd
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ import com.android.internal.telephony.uicc.UiccCardApplication;
import com.android.telephony.Rlog;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

/**
 * {@hide}
@@ -141,7 +141,10 @@ public class GsmCdmaConnection extends Connection {
        mAddress = dc.number;
        setEmergencyCallInfo(mOwner);

        mForwardedNumber = new ArrayList<String>(Arrays.asList(dc.forwardedNumber));
        String forwardedNumber = TextUtils.isEmpty(dc.forwardedNumber) ? null : dc.forwardedNumber;
        Rlog.i(LOG_TAG, "create, forwardedNumber=" + Rlog.pii(LOG_TAG, forwardedNumber));
        mForwardedNumber =  forwardedNumber == null ? null :
                new ArrayList<>(Collections.singletonList(dc.forwardedNumber));
        mIsIncoming = dc.isMT;
        mCreateTime = System.currentTimeMillis();
        mCnapName = dc.name;
@@ -710,11 +713,13 @@ public class GsmCdmaConnection extends Connection {
            mOwner.getPhone().getVoiceCallSessionStats().onAudioCodecChanged(this, dc.audioQuality);
        }

        ArrayList<String> forwardedNumber =
                new ArrayList<String>(Arrays.asList(dc.forwardedNumber));
        if (!equalsHandlesNulls(mForwardedNumber, forwardedNumber)) {
            if (Phone.DEBUG_PHONE) log("update: mForwardedNumber, # changed!");
            mForwardedNumber = forwardedNumber;
        String forwardedNumber = TextUtils.isEmpty(dc.forwardedNumber) ? null : dc.forwardedNumber;
        Rlog.i(LOG_TAG, "update: forwardedNumber=" + Rlog.pii(LOG_TAG, forwardedNumber));
        ArrayList<String> forwardedNumbers =  forwardedNumber == null ? null :
                new ArrayList<>(Collections.singletonList(dc.forwardedNumber));
        if (!equalsHandlesNulls(mForwardedNumber, forwardedNumbers)) {
            if (Phone.DEBUG_PHONE) log("update: mForwardedNumber, # changed");
            mForwardedNumber = forwardedNumbers;
            changed = true;
        }

+18 −0
Original line number Diff line number Diff line
@@ -278,4 +278,22 @@ public class GsmCdmaConnectionTest extends TelephonyTest {
        assertEquals(new ArrayList<String>(Arrays.asList(forwardedNumber)),
                connection.getForwardedNumber());
    }

    @Test @SmallTest
    public void testForwardedNumberEmptyNull() {
        mDC.state = DriverCall.State.INCOMING;
        mDC.forwardedNumber = "";
        connection = new GsmCdmaConnection(mPhone, mDC, mCT, 0);
        assertNull(connection.getForwardedNumber());
        mDC.forwardedNumber = null;
        connection.update(mDC);
        assertNull(connection.getForwardedNumber());

        mDC.forwardedNumber = null;
        connection = new GsmCdmaConnection(mPhone, mDC, mCT, 0);
        assertNull(connection.getForwardedNumber());
        mDC.forwardedNumber = "";
        connection.update(mDC);
        assertNull(connection.getForwardedNumber());
    }
}