summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorsaber safavi <saber.safavi@codic.se>2023-04-27 17:01:43 +0200
committersaber safavi <saber.safavi@codic.se>2023-05-03 12:06:41 +0200
commit7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9 (patch)
tree5ad87d6ee123b3c5ee7082df327a795ea0d7c874 /android
parenteab525e029177dd56141821784ffe7d4774201f1 (diff)
downloadmullvadvpn-7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9.tar.xz
mullvadvpn-7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9.zip
Add informational dialog to custom DNS setting
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt13
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt9
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt10
6 files changed, 44 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt
new file mode 100644
index 0000000000..ce3a325780
--- /dev/null
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt
@@ -0,0 +1,13 @@
+package net.mullvad.mullvadvpn.compose.dialog
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
+import net.mullvad.mullvadvpn.R
+
+@Composable
+fun CustomDnsInfoDialog(onDismiss: () -> Unit) {
+ InfoDialog(
+ message = stringResource(id = R.string.settings_changes_effect_warning_content_blocker),
+ onDismiss = onDismiss
+ )
+}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt
index 92c58f1f77..fe45ac0432 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt
@@ -47,6 +47,7 @@ import net.mullvad.mullvadvpn.compose.component.CollapsableAwareToolbarScaffold
import net.mullvad.mullvadvpn.compose.component.CollapsingTopBar
import net.mullvad.mullvadvpn.compose.component.drawVerticalScrollbar
import net.mullvad.mullvadvpn.compose.dialog.ContentBlockersInfoDialog
+import net.mullvad.mullvadvpn.compose.dialog.CustomDnsInfoDialog
import net.mullvad.mullvadvpn.compose.dialog.DnsDialog
import net.mullvad.mullvadvpn.compose.dialog.MalwareInfoDialog
import net.mullvad.mullvadvpn.compose.dialog.MtuDialog
@@ -86,6 +87,7 @@ private fun PreviewAdvancedSettings() {
onCancelDnsDialogClick = {},
onContentsBlockersInfoClicked = {},
onMalwareInfoClicked = {},
+ onCustomDnsInfoClicked = {},
onDismissInfoClicked = {},
onBackClick = {}
)
@@ -116,6 +118,7 @@ fun AdvancedSettingScreen(
onCancelDnsDialogClick: () -> Unit = {},
onContentsBlockersInfoClicked: () -> Unit = {},
onMalwareInfoClicked: () -> Unit = {},
+ onCustomDnsInfoClicked: () -> Unit = {},
onDismissInfoClicked: () -> Unit = {},
onBackClick: () -> Unit = {},
onStopEvent: () -> Unit = {}
@@ -146,6 +149,9 @@ fun AdvancedSettingScreen(
is AdvancedSettingsUiState.ContentBlockersInfoDialogUiState -> {
ContentBlockersInfoDialog(onDismissInfoClicked)
}
+ is AdvancedSettingsUiState.CustomDnsInfoDialogUiState -> {
+ CustomDnsInfoDialog(onDismissInfoClicked)
+ }
is AdvancedSettingsUiState.MalwareInfoDialogUiState -> {
MalwareInfoDialog(onDismissInfoClicked)
}
@@ -288,7 +294,8 @@ fun AdvancedSettingScreen(
title = stringResource(R.string.enable_custom_dns),
isToggled = uiState.isCustomDnsEnabled,
isEnabled = uiState.contentBlockersOptions.isAnyBlockerEnabled().not(),
- onCellClicked = { newValue -> onToggleDnsClick(newValue) }
+ onCellClicked = { newValue -> onToggleDnsClick(newValue) },
+ onInfoClicked = { onCustomDnsInfoClicked() }
)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt
index 71b608b51b..feaa8e0824 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt
@@ -45,6 +45,14 @@ sealed interface AdvancedSettingsUiState {
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions()
) : AdvancedSettingsUiState
+ data class CustomDnsInfoDialogUiState(
+ override val mtu: String = "",
+ override val isCustomDnsEnabled: Boolean = false,
+ override val isAllowLanEnabled: Boolean = false,
+ override val customDnsItems: List<CustomDnsItem> = listOf(),
+ override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions()
+ ) : AdvancedSettingsUiState
+
data class MalwareInfoDialogUiState(
override val mtu: String = "",
override val isCustomDnsEnabled: Boolean = false,
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt
index 62661b0455..23a5826e47 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt
@@ -46,6 +46,7 @@ class AdvancedFragment : BaseFragment() {
onRemoveDnsClick = vm::onRemoveDnsClick,
onCancelDnsDialogClick = vm::onCancelDialogClick,
onContentsBlockersInfoClicked = vm::onContentsBlockerInfoClick,
+ onCustomDnsInfoClicked = vm::onCustomDnsInfoClick,
onMalwareInfoClicked = vm::onMalwareInfoClick,
onDismissInfoClicked = vm::onDismissInfoClick,
onBackClick = { activity?.onBackPressed() },
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt
index 540ed235ce..e9d9f559d8 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt
@@ -90,6 +90,10 @@ class AdvancedSettingsViewModel(
dialogState.update { AdvancedSettingsDialogState.ContentBlockersInfoDialog }
}
+ fun onCustomDnsInfoClick() {
+ dialogState.update { AdvancedSettingsDialogState.CustomDnsInfoDialog }
+ }
+
fun onMalwareInfoClick() {
dialogState.update { AdvancedSettingsDialogState.MalwareInfoDialog }
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt
index 109e518ad5..fddcdfb5b7 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt
@@ -39,6 +39,14 @@ data class AdvancedSettingsViewModelState(
customDnsItems = customDnsList,
contentBlockersOptions = contentBlockersOptions
)
+ is AdvancedSettingsDialogState.CustomDnsInfoDialog ->
+ AdvancedSettingsUiState.CustomDnsInfoDialogUiState(
+ mtu = mtuValue,
+ isCustomDnsEnabled = isCustomDnsEnabled,
+ isAllowLanEnabled = isAllowLanEnabled,
+ customDnsItems = customDnsList,
+ contentBlockersOptions = contentBlockersOptions
+ )
is AdvancedSettingsDialogState.MalwareInfoDialog ->
AdvancedSettingsUiState.MalwareInfoDialogUiState(
mtu = mtuValue,
@@ -82,6 +90,8 @@ sealed class AdvancedSettingsDialogState {
object ContentBlockersInfoDialog : AdvancedSettingsDialogState()
+ object CustomDnsInfoDialog : AdvancedSettingsDialogState()
+
object MalwareInfoDialog : AdvancedSettingsDialogState()
}