diff --git a/app/build.gradle b/app/build.gradle index 2f93b969..8b7cb169 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' } diff --git a/app/src/main/kotlin/com/tutpro/baresip/AndroidContactsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AndroidContactsActivity.kt index 341e0e73..a6e4409f 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AndroidContactsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AndroidContactsActivity.kt @@ -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 + } + } } diff --git a/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt index b8bb3d35..2e1e2803 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt @@ -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 diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt index 108366d3..1473ffa5 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt @@ -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 - } - } } diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 90c23900..b6eb83f9 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -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)) { diff --git a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt index 258bfd48..3799a00f 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt @@ -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) {