diff options
| author | saber safavi <saber.safavi@codic.se> | 2023-04-27 17:01:43 +0200 |
|---|---|---|
| committer | saber safavi <saber.safavi@codic.se> | 2023-05-03 12:06:41 +0200 |
| commit | 7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9 (patch) | |
| tree | 5ad87d6ee123b3c5ee7082df327a795ea0d7c874 /android | |
| parent | eab525e029177dd56141821784ffe7d4774201f1 (diff) | |
| download | mullvadvpn-7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9.tar.xz mullvadvpn-7e921fa2d43a7ebf1dcdad3f4f554d3f108322d9.zip | |
Add informational dialog to custom DNS setting
Diffstat (limited to 'android')
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() } |
