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

Commit 2613e006 authored by Flavio Lerda's avatar Flavio Lerda
Browse files

Do not format numbers starting with hash or star.

If the user asks to format a number that starts with either a hash or a
star symbol, do not further format the phone number since we are not
actually able to parse such a number correctly and current this results
in the star or hash being dropped.

Bug: 5362177
Change-Id: Iff8d317c087d0ca07f2b107459ce8c47882ef367
parent cbb62bb8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1409,6 +1409,11 @@ public class PhoneNumberUtils
     * @hide
     */
    public static String formatNumber(String phoneNumber, String defaultCountryIso) {
        // Do not attempt to format numbers that start with a hash or star symbol.
        if (phoneNumber.startsWith("#") || phoneNumber.startsWith("*")) {
            return phoneNumber;
        }

        PhoneNumberUtil util = PhoneNumberUtil.getInstance();
        String result = null;
        try {
+12 −0
Original line number Diff line number Diff line
@@ -513,7 +513,19 @@ public class PhoneNumberUtilsTest extends AndroidTestCase {
        assertEquals("(650) 291-0000", PhoneNumberUtils.formatNumber("650 2910000", "US"));
        assertEquals("123-4567", PhoneNumberUtils.formatNumber("1234567", "US"));
        assertEquals("(800) 466-4114", PhoneNumberUtils.formatNumber("800-GOOG-114", "US"));
    }

    @SmallTest
    public void testFormatNumber_LeadingStarAndHash() {
        // Numbers with a leading '*' or '#' should be left unchanged.
        assertEquals("*650 2910000", PhoneNumberUtils.formatNumber("*650 2910000", "US"));
        assertEquals("#650 2910000", PhoneNumberUtils.formatNumber("#650 2910000", "US"));
        assertEquals("*#650 2910000", PhoneNumberUtils.formatNumber("*#650 2910000", "US"));
        assertEquals("#*650 2910000", PhoneNumberUtils.formatNumber("#*650 2910000", "US"));
        assertEquals("#650*2910000", PhoneNumberUtils.formatNumber("#650*2910000", "US"));
        assertEquals("#650*2910000", PhoneNumberUtils.formatNumber("#650*2910000", "US"));
        assertEquals("##650 2910000", PhoneNumberUtils.formatNumber("##650 2910000", "US"));
        assertEquals("**650 2910000", PhoneNumberUtils.formatNumber("**650 2910000", "US"));
    }

    @SmallTest