summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-06-03 09:36:56 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-06-03 14:54:55 +0200
commitf11d057d4a078759f3ff26b4e132800eff5b8c83 (patch)
treefe83dc28ef4434da8cfee9593e9cbf441275b83d /android/app/src
parentae0bd42a3a5e8f4b2eecb9e867bad32e5194bec0 (diff)
downloadmullvadvpn-f11d057d4a078759f3ff26b4e132800eff5b8c83.tar.xz
mullvadvpn-f11d057d4a078759f3ff26b4e132800eff5b8c83.zip
Remove by custom DNS by index
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialogTest.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/SettingsRepository.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt9
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) }