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

Commit c48dc805 authored by Jack Yu's avatar Jack Yu
Browse files

Fixed that SIM name not updated issue

The SIM name priority method did not give
the right priority. Added a unit test to
ensure user input always has the highest
priority.

Bug: 145925846
Test: Manual + unit tests

Merged-In: I100404997459731da93887237173f390af034139
Change-Id: I100404997459731da93887237173f390af034139
(cherry picked from commit c07d64ca)
parent e96f0b74
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -1507,14 +1507,13 @@ public class SubscriptionController extends ISub.Stub {
     * @return int representing the priority. Higher value means higher priority.
     */
    public static int getNameSourcePriority(@SimDisplayNameSource int nameSource) {
        int index = Arrays.binarySearch(
                new int[] {
        int index = Arrays.asList(
                SubscriptionManager.NAME_SOURCE_DEFAULT_SOURCE,
                SubscriptionManager.NAME_SOURCE_SIM_PNN,
                SubscriptionManager.NAME_SOURCE_SIM_SPN,
                SubscriptionManager.NAME_SOURCE_CARRIER,
                SubscriptionManager.NAME_SOURCE_USER_INPUT // user has highest priority.
                }, nameSource);
        ).indexOf(nameSource);
        return (index < 0) ? 0 : index;
    }

@@ -1547,6 +1546,10 @@ public class SubscriptionController extends ISub.Stub {
                        && (getNameSourcePriority(subInfo.getNameSource())
                                > getNameSourcePriority(nameSource)
                        || (displayName != null && displayName.equals(subInfo.getDisplayName())))) {
                    logd("Name source " + subInfo.getNameSource() + "'s priority "
                            + getNameSourcePriority(subInfo.getNameSource()) + " is greater than "
                            + "name source " + nameSource + "'s priority "
                            + getNameSourcePriority(nameSource) + ", return now.");
                    return 0;
                }
            }
+24 −0
Original line number Diff line number Diff line
@@ -1004,4 +1004,28 @@ public class SubscriptionControllerTest extends TelephonyTest {
        mSubscriptionControllerUT.setAlwaysAllowMmsData(0, false);
        verify(mDataEnabledSettings).setAlwaysAllowMmsData(eq(false));
    }

    @Test
    @SmallTest
    public void testNameSourcePriority() throws Exception {
        assertTrue(mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_USER_INPUT)
                > mSubscriptionControllerUT.getNameSourcePriority(
                        SubscriptionManager.NAME_SOURCE_CARRIER));

        assertTrue(mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_CARRIER)
                > mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_SIM_SPN));

        assertTrue(mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_SIM_SPN)
                > mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_SIM_PNN));

        assertTrue(mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_SIM_PNN)
                > mSubscriptionControllerUT.getNameSourcePriority(
                SubscriptionManager.NAME_SOURCE_DEFAULT_SOURCE));
    }
}