diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt | 28 |
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) + } +} |
