diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index ea349bf4b3573..34f88489ed6a1 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -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 { diff --git a/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java b/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java index 849ff48da9b1f..e2349afbf85e8 100644 --- a/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java +++ b/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java @@ -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