mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 08:39:22 +01:00
Pretty-print phone numbers.
This commit is contained in:
committed by
Alan Evans
parent
3dc1614fbc
commit
9e5156ab73
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user