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

Commit 73f5a132 authored by Nathan Harold's avatar Nathan Harold Committed by Android (Google) Code Review
Browse files

Merge "Fix setLine1Number Override in SubInfo#getNumber" into main

parents 881cff45 ac38800a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -641,7 +641,8 @@ public class SubscriptionInfoInternal {
     * @return the number of this subscription.
     */
    public String getNumber() {
        return mNumber;
        if (TextUtils.isEmpty(mNumberFromCarrier)) return mNumber;
        return mNumberFromCarrier;
    }

    /**
@@ -1260,7 +1261,7 @@ public class SubscriptionInfoInternal {
                .setCarrierName(mCarrierName)
                .setDisplayNameSource(mDisplayNameSource)
                .setIconTint(mIconTint)
                .setNumber(mNumber)
                .setNumber(getNumber())
                .setDataRoaming(mDataRoaming)
                .setMcc(mMcc)
                .setMnc(mMnc)
@@ -1308,7 +1309,7 @@ public class SubscriptionInfoInternal {
                + " displayNameSource="
                + SubscriptionManager.displayNameSourceToString(mDisplayNameSource)
                + " iconTint=" + mIconTint
                + " number=" + Rlog.pii(TelephonyUtils.IS_DEBUGGABLE, mNumber)
                + " number=" + Rlog.pii(TelephonyUtils.IS_DEBUGGABLE, getNumber())
                + " dataRoaming=" + mDataRoaming
                + " mcc=" + mMcc
                + " mnc=" + mMnc
+4 −1
Original line number Diff line number Diff line
@@ -720,7 +720,10 @@ public class SubscriptionDatabaseManagerTest extends TelephonyTest {
        assertThrows(IllegalArgumentException.class,
                () -> mDatabaseManagerUT.setNumber(1, FAKE_PHONE_NUMBER2));

        SubscriptionInfoInternal subInfo = insertSubscriptionAndVerify(FAKE_SUBSCRIPTION_INFO1);
        // Prevent the carrier number from overriding the display number
        SubscriptionInfoInternal subInfo = insertSubscriptionAndVerify(
                new SubscriptionInfoInternal.Builder(FAKE_SUBSCRIPTION_INFO1)
                        .setNumberFromCarrier("").build());
        mDatabaseManagerUT.setNumber(subInfo.getSubscriptionId(), FAKE_PHONE_NUMBER2);
        processAllMessages();

+36 −1
Original line number Diff line number Diff line
@@ -1611,7 +1611,9 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {

    @Test
    public void testSetDisplayNumber() {
        insertSubscription(FAKE_SUBSCRIPTION_INFO1);
        insertSubscription(new SubscriptionInfoInternal.Builder(FAKE_SUBSCRIPTION_INFO1)
                .setNumberFromCarrier("")
                .build());

        // Should fail without MODIFY_PHONE_STATE
        assertThrows(SecurityException.class, () -> mSubscriptionManagerServiceUT
@@ -2167,6 +2169,39 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
                .setSubscriptionProperty(1, "hahahaha", "0"));
    }

    @Test
    public void testGetNumberWithCarrierNumber() {
        insertSubscription(FAKE_SUBSCRIPTION_INFO1);

        // Should fail without MODIFY_PHONE_STATE
        assertThrows(SecurityException.class, () -> mSubscriptionManagerServiceUT
                .setDisplayNumber(FAKE_PHONE_NUMBER2, 1));

        mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE);

        mSubscriptionManagerServiceUT.setDisplayNumber(FAKE_PHONE_NUMBER2, 1);
        processAllMessages();
        verify(mMockedSubscriptionManagerServiceCallback).onSubscriptionChanged(eq(1));

        SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT
                .getSubscriptionInfoInternal(1);
        assertThat(subInfo).isNotNull();
        assertThat(subInfo.getNumber()).isEqualTo(FAKE_PHONE_NUMBER1);
        Mockito.clearInvocations(mMockedSubscriptionManagerServiceCallback);

        setCarrierPrivilegesForSubId(true, 1);
        mSubscriptionManagerServiceUT.setPhoneNumber(1,
                SubscriptionManager.PHONE_NUMBER_SOURCE_CARRIER, "",
                CALLING_PACKAGE, CALLING_FEATURE);
        processAllMessages();
        verify(mMockedSubscriptionManagerServiceCallback).onSubscriptionChanged(eq(1));
        setCarrierPrivilegesForSubId(false, 1);

        subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(1);
        assertThat(subInfo).isNotNull();
        assertThat(subInfo.getNumber()).isEqualTo(FAKE_PHONE_NUMBER2);
    }

    @Test
    public void testGetNonAccessibleFields() throws Exception {
        insertSubscription(FAKE_SUBSCRIPTION_INFO1);