Improved friendlyUri function

This commit is contained in:
Juha Heinanen
2023-03-05 06:10:19 +02:00
parent edb905bb0a
commit de6747a802

View File

@ -123,41 +123,36 @@ object Utils {
}
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)
Log.d(TAG, "******* Contact.contactName=$u")
if (u != uri)
return u
if (e164Check) {
u = Contact.contactName(e164Uri(uri, account.countryCode))
if (u != uri)
return u
u = friendlyUri(ctx, uri, account, false)
Log.d(TAG, "******* Contact.contactName(e164Uri)=$u")
if (u != uri)
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(">")))
u = uri.substring(1).substringBeforeLast(">")
u = u.substringBefore("?")
u = u.replace(":5060", "")
u = u.replace(";transport=udp", "", true)
if (u.split(":").size == 3 ||
(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
}
return u
}
fun e164Uri(uri: String, countryCode: String): String {