From 49ac5ada93483324b6c7036453fa66fc5380c4e3 Mon Sep 17 00:00:00 2001 From: Revertron Date: Sat, 19 Nov 2022 16:17:22 +0100 Subject: [PATCH] Fixed possibility to add duplicate servers in DNS settings. --- .../eu/neilalexander/yggdrasil/DnsActivity.kt | 31 ++++++++++++------- app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/neilalexander/yggdrasil/DnsActivity.kt b/app/src/main/java/eu/neilalexander/yggdrasil/DnsActivity.kt index 4218bf0..d95496b 100644 --- a/app/src/main/java/eu/neilalexander/yggdrasil/DnsActivity.kt +++ b/app/src/main/java/eu/neilalexander/yggdrasil/DnsActivity.kt @@ -60,13 +60,17 @@ class DnsActivity : AppCompatActivity() { builder.setTitle(getString(R.string.dns_add_server_dialog_title)) builder.setView(view) builder.setPositiveButton(getString(R.string.add)) { dialog, _ -> - servers.add(input.text.toString()) - preferences.edit().apply { - putString(KEY_DNS_SERVERS, servers.joinToString(",")) - commit() + val server = input.text.toString() + if (!servers.contains(server)) { + servers.add(server) + preferences.edit().apply { + putString(KEY_DNS_SERVERS, servers.joinToString(",")) + commit() + } + updateConfiguredServers() + } else { + Toast.makeText(this, R.string.dns_already_added_server, Toast.LENGTH_SHORT).show() } - dialog.dismiss() - updateConfiguredServers() } builder.setNegativeButton(getString(R.string.cancel)) { dialog, _ -> dialog.cancel() @@ -158,12 +162,17 @@ class DnsActivity : AppCompatActivity() { addButton.tag = server addButton.setOnClickListener { button -> - servers.add(button.tag as String) - preferences.edit().apply { - this.putString(KEY_DNS_SERVERS, servers.joinToString(",")) - this.commit() + val serverString = button.tag as String + if (!servers.contains(serverString)) { + servers.add(serverString) + preferences.edit().apply { + this.putString(KEY_DNS_SERVERS, servers.joinToString(",")) + this.commit() + } + updateConfiguredServers() + } else { + Toast.makeText(this, R.string.dns_already_added_server, Toast.LENGTH_SHORT).show() } - updateConfiguredServers() } view.setOnLongClickListener { val builder: AlertDialog.Builder = AlertDialog.Builder(this) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1d0dc23..e687b53 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -22,6 +22,7 @@ 1 сервер %d сервера/серверов Убрать %s? + Этот сервер уже добавлен. Включено (Нет подключения) Подключено Выключено diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 20696bd..387b9c9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,6 +22,7 @@ 1 server %d server Remove %s? + This server is already added. Enabled (No connectivity) Connected Not enabled