Pretty-print phone numbers.

This commit is contained in:
Greyson Parrelli
2020-11-04 15:49:56 -05:00
committed by Alan Evans
parent 3dc1614fbc
commit 9e5156ab73
6 changed files with 34 additions and 7 deletions

View File

@@ -11,6 +11,7 @@ import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber;
import com.google.i18n.phonenumbers.ShortNumberInfo;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
@@ -46,7 +47,6 @@ public class PhoneNumberFormatter {
private final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
private final Pattern ALPHA_PATTERN = Pattern.compile("[a-zA-Z]");
public static @NonNull PhoneNumberFormatter get(Context context) {
String localNumber = TextSecurePreferences.getLocalNumber(context);
@@ -81,6 +81,25 @@ public class PhoneNumberFormatter {
this.localCountryCode = localCountryCode;
}
public static @NonNull String prettyPrint(@NonNull String e164) {
return get(ApplicationDependencies.getApplication()).prettyPrintFormat(e164);
}
public @NonNull String prettyPrintFormat(@NonNull String e164) {
try {
Phonenumber.PhoneNumber parsedNumber = phoneNumberUtil.parse(e164, localCountryCode);
if (localNumber.isPresent() && localNumber.get().countryCode == parsedNumber.getCountryCode()) {
return phoneNumberUtil.format(parsedNumber, PhoneNumberUtil.PhoneNumberFormat.NATIONAL);
} else {
return phoneNumberUtil.format(parsedNumber, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
}
} catch (NumberParseException e) {
Log.w(TAG, "Failed to format number.");
return e164;
}
}
public String format(@Nullable String number) {
if (number == null) return "Unknown";
if (GroupId.isEncodedGroup(number)) return number;