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

Commit f6850746 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

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

Change-Id: I379bda64e23945fd2fbdaaba288de69bf06d5a37
parents b5b9cf88 92694894
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());
    }
}