From d8b26f9b64f8b782c4aca0440d8bc4a8aefcf03d Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 27 Nov 2019 10:55:46 +0200 Subject: [PATCH] - Added possibility to give transport protocol for account's AoR. - Do not show account's port or transport protocol except in Account Activity. --- app/src/main/cpp/baresip.c | 16 ++++++++++++++ .../main/kotlin/com/tutpro/baresip/Account.kt | 10 +++++++++ .../com/tutpro/baresip/AccountActivity.kt | 6 +++++- .../com/tutpro/baresip/AccountListAdapter.kt | 2 +- .../com/tutpro/baresip/AccountsActivity.kt | 14 ++++++++++++- .../com/tutpro/baresip/CallsActivity.kt | 2 +- .../com/tutpro/baresip/ChatsActivity.kt | 2 +- .../com/tutpro/baresip/UaSpinnerAdapter.kt | 2 +- .../main/kotlin/com/tutpro/baresip/Utils.kt | 21 ++++++++++++++----- app/src/main/res/layout/activity_account.xml | 11 ++++++++++ app/src/main/res/layout/activity_accounts.xml | 1 + app/src/main/res/menu/accounts_menu.xml | 6 ++++++ app/src/main/res/values-fi/strings.xml | 14 +++++++++++-- app/src/main/res/values/strings.xml | 12 +++++++++-- .../android/en-US/changelogs/15.1.0.txt | 2 ++ 15 files changed, 106 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/menu/accounts_menu.xml create mode 100644 fastlane/metadata/android/en-US/changelogs/15.1.0.txt diff --git a/app/src/main/cpp/baresip.c b/app/src/main/cpp/baresip.c index 9216b74d..00bbfc7b 100644 --- a/app/src/main/cpp/baresip.c +++ b/app/src/main/cpp/baresip.c @@ -586,6 +586,22 @@ Java_com_tutpro_baresip_AccountKt_account_1aor(JNIEnv *env, jobject thiz, jstrin return (*env)->NewStringUTF(env, ""); } +JNIEXPORT jstring JNICALL +Java_com_tutpro_baresip_AccountKt_account_1uri(JNIEnv *env, jobject thiz, jstring javaAcc) { + const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0); + struct account *acc = (struct account *)strtoul(native_acc, NULL, 10); + (*env)->ReleaseStringUTFChars(env, javaAcc, native_acc); + const struct sip_addr *addr = account_laddr(acc); + char uri_buf[512]; + int l; + l = re_snprintf(&(uri_buf[0]), 511, "%H", uri_encode, addr->uri); + if (l != -1) + uri_buf[l] = '\0'; + else + uri_buf[0] = '\0'; + return (*env)->NewStringUTF(env, uri_buf); +} + JNIEXPORT jstring JNICALL Java_com_tutpro_baresip_AccountKt_account_1auth_1user(JNIEnv *env, jobject thiz, jstring javaAcc) { const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0); diff --git a/app/src/main/kotlin/com/tutpro/baresip/Account.kt b/app/src/main/kotlin/com/tutpro/baresip/Account.kt index 0aa3d1ec..cebe8833 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Account.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Account.kt @@ -8,6 +8,7 @@ class Account(val accp: String) { var displayName = account_display_name(accp) val aor = account_aor(accp) + val uri = account_uri(accp) var authUser = account_auth_user(accp) var authPass = account_auth_pass(accp) var outbound = ArrayList() @@ -207,12 +208,21 @@ class Account(val accp: String) { return false } + fun aor(accp: String): String { + return account_aor(accp) + } + + fun uri(accp: String): String { + return account_uri(accp) + } + } } external fun account_set_display_name(acc: String, dn: String): Int external fun account_display_name(acc: String): String external fun account_aor(acc: String): String +external fun account_uri(acc: String): String external fun account_auth_user(acc: String): String external fun account_set_auth_user(acc: String, user: String): Int external fun account_auth_pass(acc: String): String diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt index 972b3875..44a683f4 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt @@ -16,6 +16,7 @@ class AccountActivity : AppCompatActivity() { internal lateinit var acc: Account internal lateinit var ua: UserAgent + internal lateinit var uri: TextView internal lateinit var displayName: EditText internal lateinit var aor: String internal lateinit var authUser: EditText @@ -47,7 +48,10 @@ class AccountActivity : AppCompatActivity() { uaIndex = UserAgent.findAorIndex(aor)!! ua = UserAgent.uas()[uaIndex] - setTitle(aor.replace("sip:", "")) + setTitle(aor.split(":")[1]) + + uri = findViewById(R.id.Uri) as TextView + uri.setText(acc.uri) displayName = findViewById(R.id.DisplayName) as EditText displayName.setText(acc.displayName) diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountListAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountListAdapter.kt index e68efb70..b679b0f3 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountListAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountListAdapter.kt @@ -22,7 +22,7 @@ class AccountListAdapter(private val cxt: Context, private val rows: ArrayList diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt index 91514c67..cf4f6422 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity +import android.view.Menu import android.view.MenuItem import android.widget.* @@ -65,10 +66,16 @@ class AccountsActivity : AppCompatActivity() { } + override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { + R.id.help -> { + Utils.alertView(this@AccountsActivity, "New Account", + getString(R.string.accounts_help)) + } + android.R.id.home -> { Log.d("Baresip", "Back array was pressed at Accounts") BaresipService.activities.removeAt(0) @@ -76,10 +83,15 @@ class AccountsActivity : AppCompatActivity() { setResult(RESULT_OK, i) finish() } - } return true + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + + menuInflater.inflate(R.menu.accounts_menu, menu) + return true } diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt index 6e5fe490..3c92a740 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt @@ -35,7 +35,7 @@ class CallsActivity : AppCompatActivity() { account = ua.account val headerView = findViewById(R.id.account) as TextView - val headerText = "${getString(R.string.account)} ${aor.substringAfter(":")}" + val headerText = "${getString(R.string.account)} ${aor.split(":")[1]}" headerView.text = headerText val listView = findViewById(R.id.calls) as ListView diff --git a/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt index d1afa1e5..00870ce0 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt @@ -34,7 +34,7 @@ class ChatsActivity: AppCompatActivity() { BaresipService.activities.add(0, "chats,$aor") val headerView = findViewById(R.id.account) as TextView - val headerText = "${getString(R.string.account)} ${aor.substringAfter(":")}" + val headerText = "${getString(R.string.account)} ${aor.split(":")[1]}" headerView.text = headerText uaMessages = uaMessages(aor) diff --git a/app/src/main/kotlin/com/tutpro/baresip/UaSpinnerAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/UaSpinnerAdapter.kt index 39d8b451..4365ad7c 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/UaSpinnerAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/UaSpinnerAdapter.kt @@ -26,7 +26,7 @@ class UaSpinnerAdapter(private val cxt: Context, private val uas: ArrayList + + + diff --git a/app/src/main/res/menu/accounts_menu.xml b/app/src/main/res/menu/accounts_menu.xml new file mode 100644 index 00000000..9d5fd68b --- /dev/null +++ b/app/src/main/res/menu/accounts_menu.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 2895ffeb..8478cd07 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -104,8 +104,16 @@ Tilit - käyttäjä@domain[:portti] - Virheellinen käyttäjä@domain[:portti] \'%1$s\' + Valinnaisesti voidaan uutta tiliä luotaessa antaa myös porttinumero + ja tiedonsiirtoprokolla: käyttäjä@domain[:portti][;transport=udp|tcp|tls]. Jos portti on + annettu, mutta protolollaa ei ole annettu, protokolla on udp. Jos porttia ei ole annettu, + mutta protokolla on annettu, portti on joko 5060 tai 5061 (tls). Jos kumpaakaan ei ole + annettu eikä välityspalvelinta ole määritelty, tilin mahdollinen rekisteröintipalvelin + päätellään pelkästään domainin DNS-informaation perusteella. + + käyttäjä@domain + Virheellinen käyttäjä@domain[:portti][;transport=udp|tcp|tls] \'%1$s\' + Tili \'%1$s\' on jo olemassa. "Uuden tilin luonti epäonnistui. @@ -262,6 +270,8 @@ Lähetä Tila Virhe + Apua + Tallenna Palauta diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9e72c079..a0b90928 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -98,8 +98,15 @@ Accounts - user@domain[:port] - Invalid user@domain[:port] \'%1$s\' + Account\'s port number and transport protocol may be optionally + given when a new account is created: username@domain[:port][;transport=udp|tcp|tls]. If port + is given and transport protocol is not given, transport protocol defaults to udp. If port is + not given and transport protocol is given, port defaults to 5060 or 5061 (tls). If neither + is given and no outbound proxy is specified, account\'s registrar (if any) is determined + solely based on domain\'s DNS information. + + user@domain + Invalid user@domain[:port][;transport=udp|tcp|tls] \'%1$s\' Account \'%1$s\' already exists. "Failed to allocate new account. Encrypt Password @@ -246,6 +253,7 @@ Send Status Error + Help diff --git a/fastlane/metadata/android/en-US/changelogs/15.1.0.txt b/fastlane/metadata/android/en-US/changelogs/15.1.0.txt new file mode 100644 index 00000000..a39e4ccd --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/15.1.0.txt @@ -0,0 +1,2 @@ +- Added possibility to give transport protocol for account's AoR. +- Do not show account's port or transport protocol except in Account Activity.