diff options
| author | Dmitri Plotnikov <dplotnikov@google.com> | 2010-08-30 17:48:05 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-08-30 17:48:05 -0700 |
| commit | bcc2f7589a1402c24c1aa3aa3036ee73d094c2ee (patch) | |
| tree | 80eaae8de9580f005ddf9fb800b9e3e3b79778f3 /telephony/java | |
| parent | 8b46add1d5648e5ba0a9e33a259bbbc0d4242dc9 (diff) | |
| parent | 2a4e96067d074ef78aeafea13469a85690346b60 (diff) | |
| download | frameworks_base-bcc2f7589a1402c24c1aa3aa3036ee73d094c2ee.zip frameworks_base-bcc2f7589a1402c24c1aa3aa3036ee73d094c2ee.tar.gz frameworks_base-bcc2f7589a1402c24c1aa3aa3036ee73d094c2ee.tar.bz2 | |
Merge "Added new method to format the phone number when neccessary."
Diffstat (limited to 'telephony/java')
| -rw-r--r-- | telephony/java/android/telephony/PhoneNumberUtils.java | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index b0fa0f5..4f2d90f 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -1374,7 +1374,7 @@ public class PhoneNumberUtils PhoneNumberUtil util = PhoneNumberUtil.getInstance(); String result = null; try { - PhoneNumber pn = util.parse(phoneNumber, defaultCountryIso); + PhoneNumber pn = util.parseAndKeepRawInput(phoneNumber, defaultCountryIso); result = util.formatInOriginalFormat(pn, defaultCountryIso); } catch (NumberParseException e) { } @@ -1382,6 +1382,50 @@ public class PhoneNumberUtils } /** + * Format the phone number only if the given number hasn't been formatted. + * <p> + * The number which has only dailable character is treated as not being + * formatted. + * + * @param phoneNumber + * the number to be formatted. + * @param phoneNumberE164 + * the E164 format number whose country code is used if the given + * phoneNumber doesn't have the country code. + * @param defaultCountryIso + * the ISO 3166-1 two letters country code whose convention will + * be used if the phoneNumberE164 is null or invalid. + * @return the formatted number if the given number has been formatted, + * otherwise, return the given number. + * + * @hide + */ + public static String formatNumber( + String phoneNumber, String phoneNumberE164, String defaultCountryIso) { + int len = phoneNumber.length(); + for (int i = 0; i < len; i++) { + if (!isDialable(phoneNumber.charAt(i))) { + return phoneNumber; + } + } + PhoneNumberUtil util = PhoneNumberUtil.getInstance(); + // Get the country code from phoneNumberE164 + if (phoneNumberE164 != null && phoneNumberE164.length() >= 2 + && phoneNumberE164.charAt(0) == '+') { + try { + PhoneNumber pn = util.parse(phoneNumberE164, defaultCountryIso); + String regionCode = util.getRegionCodeForNumber(pn); + if (!TextUtils.isEmpty(regionCode)) { + defaultCountryIso = regionCode; + } + } catch (NumberParseException e) { + } + } + String result = formatNumber(phoneNumber, defaultCountryIso); + return result != null ? result : phoneNumber; + } + + /** * 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. |
