Fixed possibility to add duplicate servers in DNS settings.

This commit is contained in:
Revertron 2022-11-19 16:17:22 +01:00
parent 4b8e6cf922
commit 49ac5ada93
3 changed files with 22 additions and 11 deletions

View file

@ -60,13 +60,17 @@ class DnsActivity : AppCompatActivity() {
builder.setTitle(getString(R.string.dns_add_server_dialog_title)) builder.setTitle(getString(R.string.dns_add_server_dialog_title))
builder.setView(view) builder.setView(view)
builder.setPositiveButton(getString(R.string.add)) { dialog, _ -> builder.setPositiveButton(getString(R.string.add)) { dialog, _ ->
servers.add(input.text.toString()) val server = input.text.toString()
if (!servers.contains(server)) {
servers.add(server)
preferences.edit().apply { preferences.edit().apply {
putString(KEY_DNS_SERVERS, servers.joinToString(",")) putString(KEY_DNS_SERVERS, servers.joinToString(","))
commit() commit()
} }
dialog.dismiss()
updateConfiguredServers() updateConfiguredServers()
} else {
Toast.makeText(this, R.string.dns_already_added_server, Toast.LENGTH_SHORT).show()
}
} }
builder.setNegativeButton(getString(R.string.cancel)) { dialog, _ -> builder.setNegativeButton(getString(R.string.cancel)) { dialog, _ ->
dialog.cancel() dialog.cancel()
@ -158,12 +162,17 @@ class DnsActivity : AppCompatActivity() {
addButton.tag = server addButton.tag = server
addButton.setOnClickListener { button -> addButton.setOnClickListener { button ->
servers.add(button.tag as String) val serverString = button.tag as String
if (!servers.contains(serverString)) {
servers.add(serverString)
preferences.edit().apply { preferences.edit().apply {
this.putString(KEY_DNS_SERVERS, servers.joinToString(",")) this.putString(KEY_DNS_SERVERS, servers.joinToString(","))
this.commit() this.commit()
} }
updateConfiguredServers() updateConfiguredServers()
} else {
Toast.makeText(this, R.string.dns_already_added_server, Toast.LENGTH_SHORT).show()
}
} }
view.setOnLongClickListener { view.setOnLongClickListener {
val builder: AlertDialog.Builder = AlertDialog.Builder(this) val builder: AlertDialog.Builder = AlertDialog.Builder(this)

View file

@ -22,6 +22,7 @@
<string name="dns_one_server">1 сервер</string> <string name="dns_one_server">1 сервер</string>
<string name="dns_many_servers">%d сервера/серверов</string> <string name="dns_many_servers">%d сервера/серверов</string>
<string name="dns_remove_title">Убрать %s?</string> <string name="dns_remove_title">Убрать %s?</string>
<string name="dns_already_added_server">Этот сервер уже добавлен.</string>
<string name="main_no_connectivity">Включено (Нет подключения)</string> <string name="main_no_connectivity">Включено (Нет подключения)</string>
<string name="main_enabled">Подключено</string> <string name="main_enabled">Подключено</string>
<string name="main_disabled">Выключено</string> <string name="main_disabled">Выключено</string>

View file

@ -22,6 +22,7 @@
<string name="dns_one_server">1 server</string> <string name="dns_one_server">1 server</string>
<string name="dns_many_servers">%d server</string> <string name="dns_many_servers">%d server</string>
<string name="dns_remove_title">Remove %s?</string> <string name="dns_remove_title">Remove %s?</string>
<string name="dns_already_added_server">This server is already added.</string>
<string name="main_no_connectivity">Enabled (No connectivity)</string> <string name="main_no_connectivity">Enabled (No connectivity)</string>
<string name="main_enabled">Connected</string> <string name="main_enabled">Connected</string>
<string name="main_disabled">Not enabled</string> <string name="main_disabled">Not enabled</string>