diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-10 18:00:22 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-10 12:55:06 +0000 |
| commit | dbc32bdba3b31da352310878cca597924cd3819e (patch) | |
| tree | c01daddbf45caef08b6f9fa8423d6b530cca9478 /android | |
| parent | 78af944e5262edc4f7c9209eadacf40c517890fc (diff) | |
| download | mullvadvpn-dbc32bdba3b31da352310878cca597924cd3819e.tar.xz mullvadvpn-dbc32bdba3b31da352310878cca597924cd3819e.zip | |
Animate adding a new custom DNS server
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/CustomDns.kt | 6 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt | 24 |
2 files changed, 26 insertions, 4 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/CustomDns.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/CustomDns.kt index 95a4be3cb9..3bd1ae8cc8 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/CustomDns.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/CustomDns.kt @@ -43,13 +43,17 @@ class CustomDns(val daemon: MullvadDaemon, val settingsListener: SettingsListene } } - fun addDnsServer(server: InetAddress) { + fun addDnsServer(server: InetAddress): Boolean { synchronized(this) { if (!dnsServers.contains(server)) { dnsServers.add(server) changeDnsOptions(enabled, dnsServers) + + return true } } + + return false } fun removeDnsServer(server: InetAddress) { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt index 2b97b1d04f..218b2f597c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt @@ -127,9 +127,27 @@ class CustomDnsAdapter(val customDns: CustomDns) : Adapter<CustomDnsItemHolder>( } fun addDnsServer(address: String) { - jobTracker.newBackgroundJob("addDnsServer $address") { - if (inetAddressValidator.isValid(address)) { - customDns.addDnsServer(InetAddress.getByName(address)) + jobTracker.newUiJob("addDnsServer $address") { + var added = false + + jobTracker.runOnBackground { + if (inetAddressValidator.isValid(address)) { + val address = InetAddress.getByName(address) + + if (customDns.addDnsServer(address)) { + cachedCustomDnsServers.add(address) + added = true + } + } + } + + if (added) { + enteringNewServer = false + + val count = getItemCount() + + notifyItemChanged(count - 3) + notifyItemInserted(count - 2) } } } |
