aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java')
-rw-r--r--src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java b/src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java
index d1942b2..4d4d417 100644
--- a/src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/phonenumbers/PhoneNumberI18nServiceImpl.java
@@ -18,6 +18,9 @@
package net.java.sip.communicator.impl.phonenumbers;
import com.google.i18n.phonenumbers.*;
+import com.google.i18n.phonenumbers.PhoneNumberUtil.*;
+import com.google.i18n.phonenumbers.Phonenumber.*;
+
import net.java.sip.communicator.service.protocol.*;
import org.jitsi.service.configuration.*;
@@ -183,6 +186,33 @@ public class PhoneNumberI18nServiceImpl
}
/**
+ * Tries to format the passed phone number into the international format. If
+ * parsing fails or the string is not recognized as a valid phone number,
+ * the input is returned as is.
+ *
+ * @param phoneNumber The phone number to format.
+ * @return the formatted phone number in the international format.
+ */
+ public String formatForDisplay(String phoneNumber)
+ {
+ try
+ {
+ PhoneNumber pn = PhoneNumberUtil.getInstance().parse(phoneNumber,
+ System.getProperty("user.country"));
+ if (PhoneNumberUtil.getInstance().isPossibleNumber(pn))
+ {
+ return PhoneNumberUtil.getInstance().format(pn,
+ PhoneNumberFormat.INTERNATIONAL);
+ }
+ }
+ catch (NumberParseException e)
+ {
+ }
+
+ return phoneNumber;
+ }
+
+ /**
* Indicates if the given string is possibly a phone number.
*
* @param possibleNumber the string to be verified