diff options
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt | 14 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt | 4 |
2 files changed, 13 insertions, 5 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt index 12282c30a9..4e3fff52c9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt @@ -16,6 +16,7 @@ import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R @@ -56,7 +57,7 @@ class AdvancedFragment : BaseFragment() { @Deprecated("Refactor code to instead rely on Lifecycle.") private val jobTracker = JobTracker() - val shared = serviceConnectionManager.connectionState + val sharedCustomDnsInstance = serviceConnectionManager.connectionState .flatMapLatest { state -> if (state is ServiceConnectionState.ConnectedReady) { flowOf(state.container) @@ -93,9 +94,12 @@ class AdvancedFragment : BaseFragment() { } launch { - shared - .flatMapLatest { - callbackFlowFromNotifier(it.onEnabledChanged) + sharedCustomDnsInstance + .flatMapLatest { customDnsInstance -> + callbackFlowFromNotifier(customDnsInstance.onEnabledChanged) + .onStart { + emit(customDnsInstance.isCustomDnsEnabled()) + } } .collect { isEnabled -> customDnsAdapter?.updateState(isEnabled) @@ -110,7 +114,7 @@ class AdvancedFragment : BaseFragment() { } launch { - shared + sharedCustomDnsInstance .flatMapLatest { callbackFlowFromNotifier(it.onDnsServersChanged) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt index f33c2967fa..2675c1231a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/CustomDns.kt @@ -28,6 +28,10 @@ class CustomDns(private val connection: Messenger, private val settingsListener: connection.send(Request.SetEnableCustomDns(false).message) } + fun isCustomDnsEnabled(): Boolean { + return onEnabledChanged.latestEvent ?: false + } + fun addDnsServer(server: InetAddress): Boolean { val didntAlreadyHaveServer = !onDnsServersChanged.latestEvent.contains(server) |
