From cfdef7bca74977b08a167f6f37af7480f02810a5 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 5 Nov 2020 16:01:31 -0500 Subject: [PATCH] Only use the NATIONAL format for the US and UK. --- .../securesms/phonenumbers/PhoneNumberFormatter.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java b/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java index f3d26d3d00..d3380b4a7a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java @@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.Pair; import org.whispersystems.libsignal.util.guava.Optional; +import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; @@ -36,6 +37,11 @@ public class PhoneNumberFormatter { add("AC"); }}; + private static final Set NATIONAL_FORMAT_COUNTRY_CODES = new HashSet<>(Arrays.asList( + 1, // US + 44 // UK + )); + private static final Pattern US_NO_AREACODE = Pattern.compile("^(\\d{7})$"); private static final Pattern BR_NO_AREACODE = Pattern.compile("^(9?\\d{8})$"); @@ -89,7 +95,10 @@ public class PhoneNumberFormatter { try { Phonenumber.PhoneNumber parsedNumber = phoneNumberUtil.parse(e164, localCountryCode); - if (localNumber.isPresent() && localNumber.get().countryCode == parsedNumber.getCountryCode()) { + if (localNumber.isPresent() && + localNumber.get().countryCode == parsedNumber.getCountryCode() && + NATIONAL_FORMAT_COUNTRY_CODES.contains(localNumber.get().getCountryCode())) + { return phoneNumberUtil.format(parsedNumber, PhoneNumberUtil.PhoneNumberFormat.NATIONAL); } else { return phoneNumberUtil.format(parsedNumber, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);