Improved contact name - uri matching
This commit is contained in:
@ -64,5 +64,5 @@ dependencies {
|
||||
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
|
||||
implementation "androidx.activity:activity-ktx:1.4.0"
|
||||
implementation "androidx.fragment:fragment-ktx:1.4.1"
|
||||
implementation 'androidx.media:media:1.4.3'
|
||||
implementation 'androidx.media:media:1.5.0'
|
||||
}
|
||||
|
||||
@ -207,6 +207,21 @@ class AndroidContactsActivity : AppCompatActivity() {
|
||||
findContact(uri)?.name ?: uri
|
||||
}
|
||||
|
||||
// Return first sip (preferred) or tel uri of contact name or
|
||||
// null if contact is not found or if it has no uris
|
||||
fun contactUri(name: String): String? {
|
||||
for (c in BaresipService.androidContacts)
|
||||
if (c.name == name) {
|
||||
if (c.uris.isNotEmpty()) {
|
||||
for (u in c.uris)
|
||||
if (u.startsWith("sip:"))
|
||||
return u
|
||||
return c.uris.first()
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ class ChatsActivity: AppCompatActivity() {
|
||||
plusButton.setOnClickListener {
|
||||
val uriText = peerUri.text.toString().trim()
|
||||
if (uriText.isNotEmpty()) {
|
||||
val contactUri = ContactsActivity.findContactUri(uriText)
|
||||
val contactUri = Utils.contactUri(uriText)
|
||||
val uri = if (contactUri == null)
|
||||
Utils.uriComplete(uriText, Utils.aorDomain(aor))
|
||||
else
|
||||
|
||||
@ -107,7 +107,8 @@ class ContactsActivity : AppCompatActivity() {
|
||||
|
||||
companion object {
|
||||
|
||||
fun findContactUri(name: String): String? {
|
||||
// Return uri of contact name or null if contact is not found
|
||||
fun contactUri(name: String): String? {
|
||||
for (c in Contact.contacts())
|
||||
if (c.name.equals(name, ignoreCase = true))
|
||||
return c.uri.removePrefix("<")
|
||||
@ -116,6 +117,15 @@ class ContactsActivity : AppCompatActivity() {
|
||||
return null
|
||||
}
|
||||
|
||||
// Return contact name of uri or null if contact with uri is not found
|
||||
fun contactName(uri: String): String? {
|
||||
val userPart = Utils.uriUserPart(uri)
|
||||
return if (Utils.isTelNumber(userPart))
|
||||
findContact("tel:$userPart")?.name
|
||||
else
|
||||
findContact(uri)?.name
|
||||
}
|
||||
|
||||
fun findContact(uri: String): Contact? {
|
||||
for (c in Contact.contacts()) {
|
||||
if (Utils.uriMatch(c.uri, uri))
|
||||
@ -130,14 +140,5 @@ class ContactsActivity : AppCompatActivity() {
|
||||
return false
|
||||
}
|
||||
|
||||
// Return contact name of uri or uri itself if contact with uri is not found
|
||||
fun contactName(uri: String): String {
|
||||
val userPart = Utils.uriUserPart(uri)
|
||||
return if (Utils.isTelNumber(userPart))
|
||||
findContact("tel:$userPart")?.name ?: uri
|
||||
else
|
||||
findContact(uri)?.name ?: uri
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1414,7 +1414,7 @@ class MainActivity : AppCompatActivity() {
|
||||
dialog.dismiss()
|
||||
var uriText = transferUri.text.toString().trim()
|
||||
if (uriText.isNotEmpty()) {
|
||||
uriText = ContactsActivity.findContactUri(uriText) ?: uriText
|
||||
uriText = Utils.contactUri(uriText) ?: uriText
|
||||
if (Utils.isTelNumber(uriText))
|
||||
uriText = "tel:$uriText"
|
||||
val uri = if (Utils.isTelUri(uriText))
|
||||
@ -1702,7 +1702,7 @@ class MainActivity : AppCompatActivity() {
|
||||
if (Call.calls().isEmpty()) {
|
||||
var uriText = callUri.text.toString().trim()
|
||||
if (uriText.isNotEmpty()) {
|
||||
uriText = ContactsActivity.findContactUri(uriText) ?: uriText
|
||||
uriText = Utils.contactUri(uriText) ?: uriText
|
||||
if (Utils.isTelNumber(uriText))
|
||||
uriText = "tel:$uriText"
|
||||
val uri = if (Utils.isTelUri(uriText)) {
|
||||
|
||||
@ -321,11 +321,11 @@ object Utils {
|
||||
}
|
||||
|
||||
fun contactName(uri: String) : String {
|
||||
val name = ContactsActivity.contactName(uri)
|
||||
return if (name != uri)
|
||||
name
|
||||
else
|
||||
AndroidContactsActivity.contactName(uri)
|
||||
return ContactsActivity.contactName(uri) ?: AndroidContactsActivity.contactName(uri)
|
||||
}
|
||||
|
||||
fun contactUri(name: String) : String? {
|
||||
return ContactsActivity.contactUri(name) ?: AndroidContactsActivity.contactUri(name)
|
||||
}
|
||||
|
||||
fun setAvatar(ctx: Context, imageView: ImageView, textView: TextView, uri: String) {
|
||||
|
||||
Reference in New Issue
Block a user