Added possibility to nickname accounts
This commit is contained in:
@ -8,6 +8,7 @@ import java.net.URLDecoder
|
||||
|
||||
class Account(val accp: Long) {
|
||||
|
||||
var nickName = ""
|
||||
var displayName = Api.account_display_name(accp)
|
||||
val aor = Api.account_aor(accp)
|
||||
var luri = Api.account_luri(accp)
|
||||
@ -59,16 +60,13 @@ class Account(val accp: Long) {
|
||||
}
|
||||
|
||||
val extra = Api.account_extra(accp)
|
||||
if (Utils.paramExists(extra, "nickname"))
|
||||
nickName = Utils.paramValue(extra,"nickname")
|
||||
callHistory = Utils.paramValue(extra,"call_history") == ""
|
||||
countryCode = if (Utils.paramExists(extra, "country_code"))
|
||||
Utils.paramValue(extra,"country_code")
|
||||
else
|
||||
""
|
||||
telProvider = if (Utils.paramExists(extra, "tel_provider"))
|
||||
URLDecoder.decode(Utils.paramValue(extra,"tel_provider"), "UTF-8")
|
||||
else
|
||||
Utils.aorDomain(aor)
|
||||
|
||||
if (Utils.paramExists(extra, "country_code"))
|
||||
countryCode = Utils.paramValue(extra,"country_code")
|
||||
if (Utils.paramExists(extra, "tel_provider"))
|
||||
telProvider = URLDecoder.decode(Utils.paramValue(extra,"tel_provider"), "UTF-8")
|
||||
}
|
||||
|
||||
fun print() : String {
|
||||
@ -128,6 +126,9 @@ class Account(val accp: Long) {
|
||||
|
||||
var extra = ""
|
||||
|
||||
if (nickName != "")
|
||||
extra += ";nickname=$nickName"
|
||||
|
||||
if (!callHistory)
|
||||
extra += ";call_history=no"
|
||||
|
||||
@ -240,5 +241,12 @@ class Account(val accp: Long) {
|
||||
return (ap.isNotEmpty()) && (ap.length <= 64) &&
|
||||
Regex("^[ -~]*\$").matches(ap) && !ap.contains('"')
|
||||
}
|
||||
|
||||
fun uniqueNickName(nickName: String): Boolean {
|
||||
for (ua in BaresipService.uas)
|
||||
if (ua.account.nickName == nickName)
|
||||
return false
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
private lateinit var acc: Account
|
||||
private lateinit var ua: UserAgent
|
||||
private lateinit var uri: TextView
|
||||
private lateinit var nickName: EditText
|
||||
private lateinit var displayName: EditText
|
||||
private lateinit var aor: String
|
||||
private lateinit var authUser: EditText
|
||||
@ -70,6 +71,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
uri = binding.Uri
|
||||
nickName = binding.NickName
|
||||
displayName = binding.DisplayName
|
||||
authUser = binding.AuthUser
|
||||
authPass = binding.AuthPass
|
||||
@ -99,7 +101,10 @@ class AccountActivity : AppCompatActivity() {
|
||||
if (intent.getBooleanExtra("new", false))
|
||||
initAccountFromConfig(this)
|
||||
|
||||
title = aor.split(":")[1]
|
||||
title = if (acc.nickName != "")
|
||||
acc.nickName
|
||||
else
|
||||
aor.split(":")[1]
|
||||
|
||||
initLayoutFromAccount(acc)
|
||||
|
||||
@ -202,6 +207,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
private fun initLayoutFromAccount(acc: Account) {
|
||||
|
||||
uri.text = acc.luri
|
||||
nickName.setText(acc.nickName)
|
||||
displayName.setText(acc.displayName)
|
||||
authUser.setText(acc.authUser)
|
||||
|
||||
@ -346,6 +352,26 @@ class AccountActivity : AppCompatActivity() {
|
||||
when (item.itemId) {
|
||||
|
||||
R.id.checkIcon -> {
|
||||
|
||||
val nn = nickName.text.toString().trim()
|
||||
if (nn != acc.nickName) {
|
||||
if (Account.checkDisplayName(nn)) {
|
||||
if (nn == "" || Account.uniqueNickName(nn)) {
|
||||
acc.nickName = nn
|
||||
Log.d(TAG, "New nickname is ${acc.nickName}")
|
||||
save = true
|
||||
} else {
|
||||
Utils.alertView(this, getString(R.string.notice),
|
||||
String.format(getString(R.string.non_unique_account_nickname), nn))
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
Utils.alertView(this, getString(R.string.notice),
|
||||
String.format(getString(R.string.invalid_account_nickname), nn))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
val dn = displayName.text.toString().trim()
|
||||
if (dn != acc.displayName) {
|
||||
if (Account.checkDisplayName(dn)) {
|
||||
@ -649,6 +675,10 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
private fun bindTitles() {
|
||||
binding.NickNameTitle.setOnClickListener{
|
||||
Utils.alertView(this, getString(R.string.nickname),
|
||||
getString(R.string.account_nickname_help))
|
||||
}
|
||||
binding.DisplayNameTitle.setOnClickListener{
|
||||
Utils.alertView(this, getString(R.string.display_name),
|
||||
getString(R.string.display_name_help))
|
||||
|
||||
@ -171,7 +171,7 @@ class AccountsActivity : AppCompatActivity() {
|
||||
accounts = accounts + a.print() + "\n"
|
||||
}
|
||||
Utils.putFileContents(BaresipService.filesPath + "/accounts", accounts.toByteArray())
|
||||
// Log.d(TAG, "Saved accounts '${accounts}' to '${BaresipService.filesPath}/accounts'")
|
||||
Log.d(TAG, "Saved accounts '${accounts}' to '${BaresipService.filesPath}/accounts'")
|
||||
}
|
||||
|
||||
fun noAccounts(): Boolean {
|
||||
|
||||
@ -35,7 +35,11 @@ class CallsActivity : AppCompatActivity() {
|
||||
account = ua.account
|
||||
|
||||
val headerView = binding.account
|
||||
val headerText = "${getString(R.string.account)} ${aor.split(":")[1]}"
|
||||
val headerText = getString(R.string.account) + " " +
|
||||
if (account.nickName != "")
|
||||
account.nickName
|
||||
else
|
||||
aor.split(":")[1]
|
||||
headerView.text = headerText
|
||||
|
||||
val listView = binding.calls
|
||||
|
||||
@ -71,7 +71,11 @@ class ChatActivity : AppCompatActivity() {
|
||||
title = String.format(getString(R.string.chat_with), chatPeer)
|
||||
|
||||
val headerView = binding.account
|
||||
val headerText = "${getString(R.string.account)} ${aor.substringAfter(":")}"
|
||||
val headerText = getString(R.string.account) + " " +
|
||||
if (ua.account.nickName != "")
|
||||
ua.account.nickName
|
||||
else
|
||||
aor.split(":")[1]
|
||||
headerView.text = headerText
|
||||
|
||||
listView = binding.messages
|
||||
|
||||
@ -38,7 +38,11 @@ class ChatsActivity: AppCompatActivity() {
|
||||
account = UserAgent.ofAor(aor)!!.account
|
||||
|
||||
val headerView = binding.account
|
||||
val headerText = "${getString(R.string.account)} ${aor.split(":")[1]}"
|
||||
val headerText = getString(R.string.account) + " " +
|
||||
if (account.nickName != "")
|
||||
account.nickName
|
||||
else
|
||||
aor.split(":")[1]
|
||||
headerView.text = headerText
|
||||
|
||||
uaMessages = uaMessages(aor)
|
||||
|
||||
@ -42,7 +42,10 @@ class UaSpinnerAdapter(cxt: Context, private val uas: ArrayList<UserAgent>) :
|
||||
}
|
||||
|
||||
val ua = uas[position]
|
||||
viewHolder.textView.text = ua.account.aor.split(":")[1]
|
||||
viewHolder.textView.text = if (ua.account.nickName != "")
|
||||
ua.account.nickName
|
||||
else
|
||||
ua.account.aor.split(":")[1]
|
||||
viewHolder.textView.textSize = 17f
|
||||
if (BaresipService.uas.size > 1 && ua.calls().isNotEmpty())
|
||||
viewHolder.textView.setTypeface(null, Typeface.BOLD)
|
||||
|
||||
@ -26,6 +26,24 @@
|
||||
android:text="" >
|
||||
</TextView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/NickNameTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/account_nickname" >
|
||||
</TextView>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/NickName"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/nickname"
|
||||
android:inputType="textPersonName|textCapWords"
|
||||
android:textSize="18sp"
|
||||
android:autofillHints="name"
|
||||
android:layout_width="fill_parent">
|
||||
</EditText>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/DisplayNameTitle"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@ -92,6 +92,12 @@
|
||||
</string>
|
||||
<!-- Account Activity -->
|
||||
<string name="account">Tili</string>
|
||||
<string name="account_nickname">Tilin lempinimi</string>
|
||||
<string name="account_nickname_help">Lempinimi (jos annettu) millä tämä tili identifioidaan
|
||||
baresip sovelluksessa.</string>
|
||||
<string name="nickname">Tilin lempinimi</string>
|
||||
<string name="invalid_account_nickname">Virheellinen tilin lempinimi \'%1$s\'</string>
|
||||
<string name="non_unique_account_nickname">Lempinimi \'%1$s\' on jo olemassa</string>
|
||||
<string name="display_name">Tilin käyttäjän nimi</string>
|
||||
<string name="your_name">Tilin käyttäjän nimi</string>
|
||||
<string name="display_name_help">Tilin käyttäjän nimi, joka esiintyy
|
||||
|
||||
@ -101,6 +101,12 @@
|
||||
</string>
|
||||
<!-- Account Activity -->
|
||||
<string name="account">Account</string>
|
||||
<string name="account_nickname">Account Nickname</string>
|
||||
<string name="account_nickname_help">Nickname (if any) used to identify this account within
|
||||
baresip app.</string>
|
||||
<string name="nickname">Nickname of Account</string>
|
||||
<string name="invalid_account_nickname">Invalid Account Nickname \'%1$s\'</string>
|
||||
<string name="non_unique_account_nickname">Nickname \'%1$s\' already exists</string>
|
||||
<string name="display_name">Display Name</string>
|
||||
<string name="your_name">Your Name</string>
|
||||
<string name="display_name_help">Name (if any) used in From URI of outbound requests.</string>
|
||||
|
||||
Reference in New Issue
Block a user