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

Commit ffb0ed60 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixed empty phone number" into main

parents 7c0451de 2d811bd1
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -77,3 +77,15 @@ flag {
    purpose: PURPOSE_BUGFIX
  }
}

# OWNER=jackyu TARGET=24Q4
flag {
  name: "uicc_phone_number_fix"
  namespace: "telephony"
  description: "Fixed that empty phone number when getLine1Number returns empty"
  bug: "302437869"

  metadata {
    purpose: PURPOSE_BUGFIX
  }
}
+13 −3
Original line number Diff line number Diff line
@@ -3902,11 +3902,21 @@ public class SubscriptionManagerService extends ISub.Stub {
        switch(source) {
            case SubscriptionManager.PHONE_NUMBER_SOURCE_UICC:
                final Phone phone = PhoneFactory.getPhone(getSlotIndex(subId));
                if (mFeatureFlags.uiccPhoneNumberFix()) {
                    if (phone != null) {
                        String number = phone.getLine1Number();
                        if (!TextUtils.isEmpty(number)) {
                            return number;
                        }
                    }
                    return subInfo.getNumber();
                } else {
                    if (phone != null) {
                        return TextUtils.emptyIfNull(phone.getLine1Number());
                    } else {
                        return subInfo.getNumber();
                    }
                }
            case SubscriptionManager.PHONE_NUMBER_SOURCE_CARRIER:
                return subInfo.getNumberFromCarrier();
            case SubscriptionManager.PHONE_NUMBER_SOURCE_IMS:
+22 −1
Original line number Diff line number Diff line
@@ -242,6 +242,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {

        // Due to affect exist implementation, bypass feature flag.
        doReturn(false).when(mFlags).enforceTelephonyFeatureMappingForPublicApis();

        doReturn(true).when(mFlags).saferGetPhoneNumber();
        doReturn(true).when(mFlags).uiccPhoneNumberFix();

        doReturn(true).when(mPackageManager).hasSystemFeature(
                eq(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION));
        logd("SubscriptionManagerServiceTest -Setup!");
@@ -1832,7 +1836,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
        multiNumberSubInfo =
                new SubscriptionInfoInternal.Builder(multiNumberSubInfo)
                        .setNumberFromCarrier("")
                        .setNumber(phoneNumberFromUicc)
                        .setNumber("")
                        .setNumberFromIms(phoneNumberFromIms)
                        .build();
        subId = insertSubscription(multiNumberSubInfo);
@@ -2523,6 +2527,23 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
                .isEmpty();
    }

    @Test
    public void testGetPhoneNumberFromUicc() {
        mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE);
        testSetPhoneNumber();
        // Number from line1Number should be FAKE_PHONE_NUMBER1 instead of FAKE_PHONE_NUMBER2
        assertThat(mSubscriptionManagerServiceUT.getPhoneNumber(1,
                SubscriptionManager.PHONE_NUMBER_SOURCE_UICC, CALLING_PACKAGE, CALLING_FEATURE))
                .isEqualTo(FAKE_PHONE_NUMBER1);

        doReturn("").when(mPhone).getLine1Number();

        // If getLine1Number is empty, then the number should be from the sub info.
        assertThat(mSubscriptionManagerServiceUT.getPhoneNumber(1,
                SubscriptionManager.PHONE_NUMBER_SOURCE_UICC, CALLING_PACKAGE, CALLING_FEATURE))
                .isEqualTo(FAKE_PHONE_NUMBER2);
    }

    @Test
    public void testGetPhoneNumberFromInactiveSubscription() {
        mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE);