Improved checking if URI belongs to a contact.
This commit is contained in:
@@ -109,10 +109,15 @@ class ContactsActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun contactName(uri: String): String {
|
fun contactName(uri: String): String {
|
||||||
for (c in Contact.contacts())
|
val uriUser = Utils.uriUserPart(uri)
|
||||||
if ((Utils.uriUserPart(c.uri) == Utils.uriUserPart(uri)) &&
|
val uriHost = Utils.uriHostPart(uri)
|
||||||
(Utils.uriHostPart(c.uri) == 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 c.name
|
||||||
|
}
|
||||||
return uri
|
return uri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,16 +84,15 @@ object Utils {
|
|||||||
var u = uri
|
var u = uri
|
||||||
if (uri.startsWith("<") && (uri.endsWith(">")))
|
if (uri.startsWith("<") && (uri.endsWith(">")))
|
||||||
u = uri.substring(1).substringBeforeLast(">")
|
u = uri.substring(1).substringBeforeLast(">")
|
||||||
if (u.contains("@") && !u.substring(4).contains(":") &&
|
if (u.contains("@")) {
|
||||||
!u.contains(";")) {
|
|
||||||
val user = uriUserPart(u)
|
val user = uriUserPart(u)
|
||||||
val host = uriHostPart(u)
|
val host = uriHostPart(u)
|
||||||
if (checkE164Number(user) || (host == domain))
|
return if (isE164Number(user) || (host == domain))
|
||||||
return user
|
user
|
||||||
else
|
else
|
||||||
return "$user@$host"
|
"$user@$host"
|
||||||
} else {
|
} else {
|
||||||
return uri
|
return u
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +138,7 @@ object Utils {
|
|||||||
return checkPort(pt[0]) && pt[1] in arrayOf("udp", "tcp", "tls")
|
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)
|
return Regex("^[+][1-9][0-9]{0,14}\$").matches(no)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user