Improved friendlyUri function

This commit is contained in:
Juha Heinanen
2023-03-05 06:10:19 +02:00
parent edb905bb0a
commit de6747a802
+17 -22
View File
@@ -123,41 +123,36 @@ object Utils {
} }
fun friendlyUri(ctx: Context, uri: String, account: Account, e164Check: Boolean = true): String { fun friendlyUri(ctx: Context, uri: String, account: Account, e164Check: Boolean = true): String {
Log.d(TAG, "******* uri=$uri, country_code=${account.countryCode}, aor=${account.aor}")
var u = Contact.contactName(uri) var u = Contact.contactName(uri)
Log.d(TAG, "******* Contact.contactName=$u")
if (u != uri) if (u != uri)
return u return u
if (e164Check) { if (e164Check) {
u = Contact.contactName(e164Uri(uri, account.countryCode)) u = Contact.contactName(e164Uri(uri, account.countryCode))
if (u != uri) Log.d(TAG, "******* Contact.contactName(e164Uri)=$u")
return u
u = friendlyUri(ctx, uri, account, false)
if (u != uri) if (u != uri)
return u return u
} }
val params = uriParams(u) if (u.contains("@")) {
val user = uriUserPart(u)
val host = uriHostPart(u)
val params = uriParams(u)
return if (host == aorDomain(account.aor) || params.contains("user=phone"))
user
else if (host == "anonymous.invalid")
ctx.getString(R.string.anonymous)
else if (host == "unknown.invalid")
ctx.getString(R.string.unknown)
else
"$user@$host"
}
if (uri.startsWith("<") && (uri.endsWith(">"))) if (uri.startsWith("<") && (uri.endsWith(">")))
u = uri.substring(1).substringBeforeLast(">") u = uri.substring(1).substringBeforeLast(">")
u = u.substringBefore("?") u = u.substringBefore("?")
u = u.replace(":5060", "") u = u.replace(":5060", "")
u = u.replace(";transport=udp", "", true) u = u.replace(";transport=udp", "", true)
if (u.split(":").size == 3 || return u
(params.isNotEmpty() && !params.contains("user=phone")))
return u
return if (u.contains("@")) {
val user = uriUserPart(u)
val host = uriHostPart(u)
if (isTelNumber(user) || host == aorDomain(account.aor))
user
else
if (host == "anonymous.invalid")
ctx.getString(R.string.anonymous)
else if (host == "unknown.invalid")
ctx.getString(R.string.unknown)
else
"$user@$host"
} else {
u
}
} }
fun e164Uri(uri: String, countryCode: String): String { fun e164Uri(uri: String, countryCode: String): String {