Improved checking if URI belongs to a contact.

This commit is contained in:
Juha Heinanen
2021-02-12 12:06:32 +02:00
parent 7b2821d82a
commit 15f7120590
2 changed files with 14 additions and 10 deletions

View File

@ -109,10 +109,15 @@ class ContactsActivity : AppCompatActivity() {
}
fun contactName(uri: String): String {
for (c in Contact.contacts())
if ((Utils.uriUserPart(c.uri) == Utils.uriUserPart(uri)) &&
(Utils.uriHostPart(c.uri) == Utils.uriHostPart(uri)))
val uriUser = Utils.uriUserPart(uri)
val uriHost = Utils.uriHostPart(uri)
for (c in Contact.contacts()) {
val contactUser = Utils.uriUserPart(c.uri)
if ((contactUser == uriUser) &&
(Utils.isE164Number(contactUser) ||
(Utils.uriHostPart(c.uri) == uriHost)))
return c.name
}
return uri
}
}

View File

@ -84,16 +84,15 @@ object Utils {
var u = uri
if (uri.startsWith("<") && (uri.endsWith(">")))
u = uri.substring(1).substringBeforeLast(">")
if (u.contains("@") && !u.substring(4).contains(":") &&
!u.contains(";")) {
if (u.contains("@")) {
val user = uriUserPart(u)
val host = uriHostPart(u)
if (checkE164Number(user) || (host == domain))
return user
return if (isE164Number(user) || (host == domain))
user
else
return "$user@$host"
"$user@$host"
} else {
return uri
return u
}
}
@ -139,7 +138,7 @@ object Utils {
return checkPort(pt[0]) && pt[1] in arrayOf("udp", "tcp", "tls")
}
private fun checkE164Number(no: String): Boolean {
fun isE164Number(no: String): Boolean {
return Regex("^[+][1-9][0-9]{0,14}\$").matches(no)
}