summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-05 20:47:56 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-13 17:21:48 +0000
commitb716e55d5822f09a8307b5c69b0763cb325c41c3 (patch)
tree23e5106f85ab7a5fef32aa1d8d007fa3bce88c3d /android
parent57a5481e5d4a6f18ec8d357013d8af004282919c (diff)
downloadmullvadvpn-b716e55d5822f09a8307b5c69b0763cb325c41c3.tar.xz
mullvadvpn-b716e55d5822f09a8307b5c69b0763cb325c41c3.zip
Create initial UI-side `CustomDns` class
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt28
1 files changed, 28 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt
new file mode 100644
index 0000000000..7b2b506f29
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt
@@ -0,0 +1,28 @@
+package net.mullvad.mullvadvpn.ui.serviceconnection
+
+import android.os.Messenger
+import java.net.InetAddress
+import net.mullvad.talpid.util.EventNotifier
+
+class CustomDns(val connection: Messenger, val settingsListener: SettingsListener) {
+ val onEnabledChanged = EventNotifier(false)
+ val onDnsServersChanged = EventNotifier<List<InetAddress>>(emptyList())
+
+ init {
+ settingsListener.dnsOptionsNotifier.subscribe(this) { maybeDnsOptions ->
+ maybeDnsOptions?.let { dnsOptions ->
+ synchronized(this) {
+ onEnabledChanged.notifyIfChanged(dnsOptions.custom)
+ onDnsServersChanged.notifyIfChanged(dnsOptions.addresses)
+ }
+ }
+ }
+ }
+
+ fun onDestroy() {
+ onEnabledChanged.unsubscribeAll()
+ onDnsServersChanged.unsubscribeAll()
+
+ settingsListener.dnsOptionsNotifier.unsubscribe(this)
+ }
+}