diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-06-03 09:36:56 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-06-03 14:54:55 +0200 |
| commit | f11d057d4a078759f3ff26b4e132800eff5b8c83 (patch) | |
| tree | fe83dc28ef4434da8cfee9593e9cbf441275b83d /android/app/src | |
| parent | ae0bd42a3a5e8f4b2eecb9e867bad32e5194bec0 (diff) | |
| download | mullvadvpn-f11d057d4a078759f3ff26b4e132800eff5b8c83.tar.xz mullvadvpn-f11d057d4a078759f3ff26b4e132800eff5b8c83.zip | |
Remove by custom DNS by index
Diffstat (limited to 'android/app/src')
4 files changed, 14 insertions, 13 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialogTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialogTest.kt index c35a4f2534..5a2d1e7e3b 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialogTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialogTest.kt @@ -23,7 +23,7 @@ class DnsDialogTest { validationResult = DnsDialogViewState.ValidationResult.Success, isLocal = false, isAllowLanEnabled = false, - isNewEntry = true + index = null ) @SuppressLint("ComposableNaming") @@ -32,7 +32,7 @@ class DnsDialogTest { state: DnsDialogViewState = defaultState, onDnsInputChange: (String) -> Unit = { _ -> }, onSaveDnsClick: () -> Unit = {}, - onRemoveDnsClick: () -> Unit = {}, + onRemoveDnsClick: (Int) -> Unit = {}, onDismiss: () -> Unit = {} ) { DnsDialog(state, onDnsInputChange, onSaveDnsClick, onRemoveDnsClick, onDismiss) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt index 5b76023a7e..163d19f4b5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt @@ -41,7 +41,7 @@ private fun PreviewDnsDialogNew() { DnsDialogViewState.ValidationResult.Success, false, false, - true + null ), {}, {}, @@ -61,7 +61,7 @@ private fun PreviewDnsDialogEdit() { DnsDialogViewState.ValidationResult.Success, false, false, - false + 0 ), {}, {}, @@ -81,7 +81,7 @@ private fun PreviewDnsDialogEditAllowLanDisabled() { DnsDialogViewState.ValidationResult.Success, true, false, - true + 0 ), {}, {}, @@ -125,7 +125,7 @@ fun DnsDialog( state: DnsDialogViewState, onDnsInputChange: (String) -> Unit, onSaveDnsClick: () -> Unit, - onRemoveDnsClick: () -> Unit, + onRemoveDnsClick: (Int) -> Unit, onDismiss: () -> Unit ) { AlertDialog( @@ -185,10 +185,10 @@ fun DnsDialog( text = stringResource(id = R.string.submit_button), ) - if (!state.isNewEntry) { + if (state.index != null) { NegativeButton( modifier = Modifier.fillMaxWidth(), - onClick = onRemoveDnsClick, + onClick = { onRemoveDnsClick(state.index) }, text = stringResource(id = R.string.remove_button) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/SettingsRepository.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/SettingsRepository.kt index e2469f626f..b721442197 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/SettingsRepository.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/SettingsRepository.kt @@ -45,7 +45,7 @@ class SettingsRepository( state: DnsState, ) = managementService.setDnsState(state) - suspend fun deleteCustomDns(address: InetAddress) = managementService.deleteCustomDns(address) + suspend fun deleteCustomDns(index: Int) = managementService.deleteCustomDns(index) suspend fun setCustomDns(index: Int, address: InetAddress) = managementService.setCustomDns(index, address) 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 cc377b0bab..4b3a6d5d6b 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 @@ -39,8 +39,9 @@ data class DnsDialogViewState( val validationResult: ValidationResult = ValidationResult.Success, val isLocal: Boolean, val isAllowLanEnabled: Boolean, - val isNewEntry: Boolean + val index: Int?, ) { + val isNewEntry = index == null fun isValid() = (validationResult is ValidationResult.Success) @@ -90,7 +91,7 @@ class DnsDialogViewModel( ipAddress.validateDnsEntry(index, vmState.customDnsList), ipAddress.isLocalAddress(), isAllowLanEnabled = vmState.isAllowLanEnabled, - index == null + index ) private fun String.validateDnsEntry( @@ -128,10 +129,10 @@ class DnsDialogViewModel( ) } - fun onRemoveDnsClick() = + fun onRemoveDnsClick(index: Int) = viewModelScope.launch(dispatcher) { repository - .deleteCustomDns(InetAddress.getByName(uiState.value.ipAddress)) + .deleteCustomDns(index) .fold( { _uiSideEffect.send(DnsDialogSideEffect.Error) }, { _uiSideEffect.send(DnsDialogSideEffect.Complete) } |
