summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-10 18:00:22 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-10 12:55:06 +0000
commitdbc32bdba3b31da352310878cca597924cd3819e (patch)
treec01daddbf45caef08b6f9fa8423d6b530cca9478 /android
parent78af944e5262edc4f7c9209eadacf40c517890fc (diff)
downloadmullvadvpn-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.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt24
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)
}
}
}