mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Attempt to fix duplicate e164s due to short codes.
This commit is contained in:
@@ -160,7 +160,7 @@ object E164Util {
|
||||
val withAreaCodeRules: String = applyAreaCodeRules(localNumber, localAreaCode, correctedInput)
|
||||
val parsedNumber: PhoneNumber = PhoneNumberUtil.getInstance().parse(withAreaCodeRules, regionCode)
|
||||
|
||||
val isShortCode = ShortNumberInfo.getInstance().isValidShortNumberForRegion(parsedNumber, regionCode) || withAreaCodeRules.length <= 5
|
||||
val isShortCode = ShortNumberInfo.getInstance().isValidShortNumberForRegion(parsedNumber, regionCode) || withAreaCodeRules.trimStart('+').length <= 6
|
||||
if (isShortCode) {
|
||||
return correctedInput.numbersOnly().stripLeadingZerosFromE164()
|
||||
}
|
||||
|
||||
@@ -54,13 +54,18 @@ class E164UtilTest {
|
||||
|
||||
@Test
|
||||
fun `formatAsE164 - strip leading zeros`() {
|
||||
val formatter: E164Util.Formatter = E164Util.createFormatterForE164("+14152222222")
|
||||
var formatter: E164Util.Formatter = E164Util.createFormatterForE164("+14152222222")
|
||||
Assert.assertEquals("+15551234567", formatter.formatAsE164("+015551234567"))
|
||||
Assert.assertEquals("+15551234567", formatter.formatAsE164("+0015551234567"))
|
||||
Assert.assertEquals("+15551234567", formatter.formatAsE164("01115551234567"))
|
||||
Assert.assertEquals("1234", formatter.formatAsE164("01234"))
|
||||
Assert.assertEquals(null, formatter.formatAsE164("0"))
|
||||
Assert.assertEquals(null, formatter.formatAsE164("0000000"))
|
||||
|
||||
formatter = E164Util.createFormatterForE164("+49 1234 567890")
|
||||
Assert.assertEquals("+491234567890", formatter.formatAsE164("+0491234567890"))
|
||||
Assert.assertEquals("+4912345", formatter.formatAsE164("+04912345"))
|
||||
Assert.assertEquals("+491601234567", formatter.formatAsE164("+0491601234567"))
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -97,8 +102,10 @@ class E164UtilTest {
|
||||
|
||||
@Test
|
||||
fun `formatAsE164 - short codes`() {
|
||||
val formatter: E164Util.Formatter = E164Util.createFormatterForE164("+14152222222")
|
||||
Assert.assertEquals("+40404", formatter.formatAsE164("+40404"))
|
||||
var formatter: E164Util.Formatter = E164Util.createFormatterForE164("+14152222222")
|
||||
Assert.assertEquals("40404", formatter.formatAsE164("+40404"))
|
||||
Assert.assertEquals("404040", formatter.formatAsE164("+404040"))
|
||||
Assert.assertEquals("404040", formatter.formatAsE164("404040"))
|
||||
Assert.assertEquals("7726", formatter.formatAsE164("+7726"))
|
||||
Assert.assertEquals("69987", formatter.formatAsE164("+69987"))
|
||||
Assert.assertEquals("40404", formatter.formatAsE164("40404"))
|
||||
@@ -119,6 +126,10 @@ class E164UtilTest {
|
||||
Assert.assertEquals("988", formatter.formatAsE164("988"))
|
||||
Assert.assertEquals("999", formatter.formatAsE164("999"))
|
||||
Assert.assertEquals("118", formatter.formatAsE164("118"))
|
||||
Assert.assertEquals("+119990001", formatter.formatAsE164("19990001"))
|
||||
|
||||
formatter = E164Util.createFormatterForE164("+61 2 9876 5432")
|
||||
Assert.assertEquals("19990001", formatter.formatAsE164("19990001"))
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user