diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 8b0a9de1632af..b0fa0f51a24c7 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -1385,7 +1385,7 @@ public class PhoneNumberUtils * Normalize a phone number by removing the characters other than digits. If * the given number has keypad letters, the letters will be converted to * digits first. - * + * * @param phoneNumber * the number to be normalized. * @return the normalized number. @@ -1397,9 +1397,9 @@ public class PhoneNumberUtils int len = phoneNumber.length(); for (int i = 0; i < len; i++) { char c = phoneNumber.charAt(i); - if (PhoneNumberUtils.isISODigit(c)) { + if ((i == 0 && c == '+') || PhoneNumberUtils.isISODigit(c)) { sb.append(c); - } else if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') { + } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber)); } } 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 5ef1c69516bbd..88aa78ef3dab2 100644 --- a/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java +++ b/telephony/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java @@ -524,6 +524,7 @@ public class PhoneNumberUtilsTest extends AndroidTestCase { assertEquals("6502910000", PhoneNumberUtils.normalizeNumber("650 2910000")); assertEquals("1234567", PhoneNumberUtils.normalizeNumber("12,3#4*567")); assertEquals("8004664114", PhoneNumberUtils.normalizeNumber("800-GOOG-114")); + assertEquals("+16502910000", PhoneNumberUtils.normalizeNumber("+1 650 2910000")); } }