summaryrefslogtreecommitdiffhomepage
path: root/android/app
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-08-14 13:56:25 +0200
committerAlbin <albin@mullvad.net>2024-08-15 10:34:51 +0200
commit5f70beea4797f7403b748e29da772b4e11602134 (patch)
tree0a07a6286ca822769909d9e6256c385f630363ce /android/app
parent90cb3c32545566164614fade40fe47971b6f0061 (diff)
downloadmullvadvpn-5f70beea4797f7403b748e29da772b4e11602134.tar.xz
mullvadvpn-5f70beea4797f7403b748e29da772b4e11602134.zip
Fix issues with dns dialog showing wrong state after submitting
Diffstat (limited to 'android/app')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt10
1 files changed, 8 insertions, 2 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt
index f9e2dd27c2..a7fb64bf0f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt
@@ -16,6 +16,7 @@ import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
@@ -55,11 +56,12 @@ class DnsDialogViewModel(
) : ViewModel() {
private val navArgs = DnsDestination.argsFrom(savedStateHandle)
+ private val settings = MutableStateFlow<Settings?>(null)
private val currentIndex = MutableStateFlow(navArgs.index)
private val _ipAddressInput = MutableStateFlow(navArgs.initialValue ?: EMPTY_STRING)
val uiState: StateFlow<DnsDialogViewState> =
- combine(_ipAddressInput, currentIndex, repository.settingsUpdates.filterNotNull()) {
+ combine(_ipAddressInput, currentIndex, settings.filterNotNull()) {
input,
currentIndex,
settings ->
@@ -74,6 +76,10 @@ class DnsDialogViewModel(
private val _uiSideEffect = Channel<DnsDialogSideEffect>()
val uiSideEffect = _uiSideEffect.receiveAsFlow()
+ init {
+ viewModelScope.launch { settings.emit(repository.settingsUpdates.filterNotNull().first()) }
+ }
+
private fun createViewState(
customDnsList: List<InetAddress>,
currentIndex: Int?,
@@ -116,7 +122,7 @@ class DnsDialogViewModel(
if (index != null) {
repository.setCustomDns(index = index, address = address)
} else {
- repository.addCustomDns(address = address).onRight { currentIndex.value = it }
+ repository.addCustomDns(address = address)
}
result.fold(