summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorsaber safavi <saber.safavi@codic.se>2023-05-08 16:44:25 +0200
committersaber safavi <saber.safavi@codic.se>2023-05-15 16:24:01 +0200
commit525e294bb258b666c891fb80b486fb8c111a77c8 (patch)
tree348cc96f53f432cefaac2f29b9d1eb08b5b0d3dc /android
parentd36af5377e02e9ab9c2daebcb4439ccf4de1a33c (diff)
downloadmullvadvpn-525e294bb258b666c891fb80b486fb8c111a77c8.tar.xz
mullvadvpn-525e294bb258b666c891fb80b486fb8c111a77c8.zip
Add preferences settings to Advanced screen
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt19
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AdvancedSettingScreen.kt36
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/AdvancedSettingsUiState.kt41
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/AdvancedFragment.kt3
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModel.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AdvancedSettingsViewModelState.kt28
7 files changed, 136 insertions, 23 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt
index 980af59693..0b5508d524 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt
@@ -46,13 +46,14 @@ private fun PreviewSwitchComposeCell() {
fun SwitchComposeCell(
title: String,
isToggled: Boolean,
+ subtitle: String? = null,
isEnabled: Boolean = true,
background: Color = MullvadBlue,
onCellClicked: (Boolean) -> Unit = {},
onInfoClicked: (() -> Unit)? = null
) {
- val subtitleModifier = Modifier
+ val textSize = dimensionResource(id = R.dimen.text_small).value.sp
BaseCell(
title = {
SwitchCellTitle(
@@ -60,6 +61,10 @@ fun SwitchComposeCell(
modifier = Modifier.alpha(if (isEnabled) AlphaActive else AlphaInactive)
)
},
+ subtitle =
+ subtitle?.let {
+ @Composable { Text(text = it, fontSize = textSize, color = MullvadWhite60) }
+ },
isRowEnabled = isEnabled,
bodyView = {
SwitchCellView(
@@ -70,8 +75,7 @@ fun SwitchComposeCell(
)
},
background = background,
- onCellClicked = { onCellClicked(!isToggled) },
- subtitleModifier = subtitleModifier
+ onCellClicked = { onCellClicked(!isToggled) }
)
}
@@ -100,7 +104,7 @@ fun SwitchCellView(
val verticalPadding = 13.dp
Row(
modifier = modifier.wrapContentWidth().wrapContentHeight(),
- verticalAlignment = Alignment.CenterVertically,
+ verticalAlignment = Alignment.CenterVertically
) {
if (onInfoClicked != null) {
Icon(
@@ -110,7 +114,7 @@ fun SwitchCellView(
start = horizontalPadding,
end = horizontalPadding,
top = verticalPadding,
- bottom = verticalPadding,
+ bottom = verticalPadding
)
.align(Alignment.CenterVertically),
painter = painterResource(id = R.drawable.icon_info),
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt
new file mode 100644
index 0000000000..89ef3cb3a6
--- /dev/null
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt
@@ -0,0 +1,19 @@
+package net.mullvad.mullvadvpn.compose.dialog
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
+import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.compose.component.textResource
+
+@Composable
+fun LocalNetworkSharingInfoDialog(onDismiss: () -> Unit) {
+ InfoDialog(
+ message = stringResource(id = R.string.local_network_sharing_info),
+ additionalInfo =
+ buildString {
+ appendLine(stringResource(id = R.string.local_network_sharing_additional_info))
+ appendLine(textResource(id = R.string.local_network_sharing_ip_ranges))
+ },
+ 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 c07d188e42..fc9bd30be0 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
@@ -58,6 +58,7 @@ 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.LocalNetworkSharingInfoDialog
import net.mullvad.mullvadvpn.compose.dialog.MalwareInfoDialog
import net.mullvad.mullvadvpn.compose.dialog.MtuDialog
import net.mullvad.mullvadvpn.compose.dialog.ObfuscationInfoDialog
@@ -76,6 +77,7 @@ private fun PreviewAdvancedSettings() {
AdvancedSettingScreen(
uiState =
AdvancedSettingsUiState.DefaultUiState(
+ isAutoConnectEnabled = true,
mtu = "1337",
isCustomDnsEnabled = true,
customDnsItems = listOf(CustomDnsItem("0.0.0.0", false)),
@@ -86,6 +88,8 @@ private fun PreviewAdvancedSettings() {
onRestoreMtuClick = {},
onCancelMtuDialogClicked = {},
onSplitTunnelingNavigationClick = {},
+ onToggleAutoConnect = {},
+ onToggleLocalNetworkSharing = {},
onToggleDnsClick = {},
onToggleBlockAds = {},
onToggleBlockTrackers = {},
@@ -97,6 +101,7 @@ private fun PreviewAdvancedSettings() {
onSaveDnsClick = {},
onRemoveDnsClick = {},
onCancelDnsDialogClick = {},
+ onLocalNetworkSharingInfoClick = {},
onContentsBlockersInfoClicked = {},
onMalwareInfoClicked = {},
onCustomDnsInfoClicked = {},
@@ -121,6 +126,8 @@ fun AdvancedSettingScreen(
onRestoreMtuClick: () -> Unit = {},
onCancelMtuDialogClicked: () -> Unit = {},
onSplitTunnelingNavigationClick: () -> Unit = {},
+ onToggleAutoConnect: (Boolean) -> Unit = {},
+ onToggleLocalNetworkSharing: (Boolean) -> Unit = {},
onToggleDnsClick: (Boolean) -> Unit = {},
onToggleBlockAds: (Boolean) -> Unit = {},
onToggleBlockTrackers: (Boolean) -> Unit = {},
@@ -132,6 +139,7 @@ fun AdvancedSettingScreen(
onSaveDnsClick: () -> Unit = {},
onRemoveDnsClick: () -> Unit = {},
onCancelDnsDialogClick: () -> Unit = {},
+ onLocalNetworkSharingInfoClick: () -> Unit = {},
onContentsBlockersInfoClicked: () -> Unit = {},
onMalwareInfoClicked: () -> Unit = {},
onCustomDnsInfoClicked: () -> Unit = {},
@@ -165,6 +173,9 @@ fun AdvancedSettingScreen(
onDismiss = { onCancelDnsDialogClick() }
)
}
+ is AdvancedSettingsUiState.LocalNetworkSharingInfoDialogUiState -> {
+ LocalNetworkSharingInfoDialog(onDismissInfoClicked)
+ }
is AdvancedSettingsUiState.ContentBlockersInfoDialogUiState -> {
ContentBlockersInfoDialog(onDismissInfoClicked)
}
@@ -234,7 +245,30 @@ fun AdvancedSettingScreen(
.animateContentSize(),
state = lazyListState
) {
- item { MtuComposeCell(mtuValue = uiState.mtu, onEditMtu = { onMtuCellClick() }) }
+ item {
+ Spacer(modifier = Modifier.height(cellVerticalSpacing))
+ SwitchComposeCell(
+ title = stringResource(R.string.auto_connect),
+ subtitle = stringResource(id = R.string.auto_connect_footer),
+ isToggled = uiState.isAutoConnectEnabled,
+ isEnabled = true,
+ onCellClicked = { newValue -> onToggleAutoConnect(newValue) }
+ )
+ }
+ item {
+ Spacer(modifier = Modifier.height(cellVerticalSpacing))
+ SwitchComposeCell(
+ title = stringResource(R.string.local_network_sharing),
+ isToggled = uiState.isAllowLanEnabled,
+ isEnabled = true,
+ onCellClicked = { newValue -> onToggleLocalNetworkSharing(newValue) },
+ onInfoClicked = { onLocalNetworkSharingInfoClick() }
+ )
+ }
+ item {
+ Spacer(modifier = Modifier.height(cellVerticalSpacing))
+ MtuComposeCell(mtuValue = uiState.mtu, onEditMtu = { onMtuCellClick() })
+ }
itemWithDivider {
NavigationComposeCell(
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 f08a654078..261714f8f9 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
@@ -7,6 +7,8 @@ import net.mullvad.mullvadvpn.viewmodel.StagedDns
sealed interface AdvancedSettingsUiState {
val mtu: String
+ val isAutoConnectEnabled: Boolean
+ val isLocalNetworkSharingEnabled: Boolean
val isCustomDnsEnabled: Boolean
val customDnsItems: List<CustomDnsItem>
val contentBlockersOptions: DefaultDnsOptions
@@ -15,66 +17,91 @@ sealed interface AdvancedSettingsUiState {
data class DefaultUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class MtuDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
val mtuEditValue: String,
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class DnsDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
val stagedDns: StagedDns,
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
+ ) : AdvancedSettingsUiState
+
+ data class LocalNetworkSharingInfoDialogUiState(
+ override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
+ override val isCustomDnsEnabled: Boolean = false,
+ override val isAllowLanEnabled: Boolean = false,
+ override val customDnsItems: List<CustomDnsItem> = listOf(),
+ override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class ContentBlockersInfoDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class CustomDnsInfoDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class MalwareInfoDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
data class ObfuscationInfoDialogUiState(
override val mtu: String = "",
+ override val isAutoConnectEnabled: Boolean = false,
+ override val isLocalNetworkSharingEnabled: Boolean = false,
override val isCustomDnsEnabled: Boolean = false,
override val isAllowLanEnabled: Boolean = false,
override val customDnsItems: List<CustomDnsItem> = listOf(),
override val contentBlockersOptions: DefaultDnsOptions = DefaultDnsOptions(),
- override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off,
+ override val selectedObfuscation: SelectedObfuscation = SelectedObfuscation.Off
) : AdvancedSettingsUiState
}
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 4bd7ea35b8..a7dbc8116d 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
@@ -34,6 +34,8 @@ class AdvancedFragment : BaseFragment() {
onRestoreMtuClick = vm::onRestoreMtuClick,
onCancelMtuDialogClicked = vm::onCancelDialogClick,
onSplitTunnelingNavigationClick = ::openSplitTunnelingFragment,
+ onToggleAutoConnect = vm::onToggleAutoConnect,
+ onToggleLocalNetworkSharing = vm::onToggleLocalNetworkSharing,
onToggleDnsClick = vm::onToggleDnsClick,
onToggleBlockAds = vm::onToggleBlockAds,
onToggleBlockTrackers = vm::onToggleBlockTrackers,
@@ -45,6 +47,7 @@ class AdvancedFragment : BaseFragment() {
onSaveDnsClick = vm::onSaveDnsClick,
onRemoveDnsClick = vm::onRemoveDnsClick,
onCancelDnsDialogClick = vm::onCancelDialogClick,
+ onLocalNetworkSharingInfoClick = vm::onLocalNetworkSharingInfoClick,
onContentsBlockersInfoClicked = vm::onContentsBlockerInfoClick,
onCustomDnsInfoClicked = vm::onCustomDnsInfoClick,
onMalwareInfoClicked = vm::onMalwareInfoClick,
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 8b1fa76d15..6990b7036e 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
@@ -46,6 +46,8 @@ class AdvancedSettingsViewModel(
combine(repository.settingsUpdates, dialogState) { settings, dialogState ->
AdvancedSettingsViewModelState(
mtuValue = settings?.mtuString() ?: "",
+ isAutoConnectEnabled = settings?.autoConnect ?: false,
+ isLocalNetworkSharingEnabled = settings?.allowLan ?: false,
isCustomDnsEnabled = settings?.isCustomDnsEnabled() ?: false,
customDnsList = settings?.addresses()?.asStringAddressList() ?: listOf(),
contentBlockersOptions = settings?.contentBlockersSettings()
@@ -100,6 +102,10 @@ class AdvancedSettingsViewModel(
hideDialog()
}
+ fun onLocalNetworkSharingInfoClick() {
+ dialogState.update { AdvancedSettingsDialogState.LocalNetworkSharingInfoDialog }
+ }
+
fun onContentsBlockerInfoClick() {
dialogState.update { AdvancedSettingsDialogState.ContentBlockersInfoDialog }
}
@@ -211,19 +217,11 @@ class AdvancedSettingsViewModel(
}
fun onToggleAutoConnect(isEnabled: Boolean) {
- viewModelScope.launch(dispatcher) {
- repository.setAutoConnect(
- isEnabled
- )
- }
+ viewModelScope.launch(dispatcher) { repository.setAutoConnect(isEnabled) }
}
fun onToggleLocalNetworkSharing(isEnabled: Boolean) {
- viewModelScope.launch(dispatcher) {
- repository.setLocalNetworkSharing(
- isEnabled
- )
- }
+ viewModelScope.launch(dispatcher) { repository.setLocalNetworkSharing(isEnabled) }
}
fun onToggleDnsClick(isEnabled: Boolean) {
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 3349e58b99..640f4f64ac 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
@@ -6,6 +6,8 @@ import net.mullvad.mullvadvpn.model.SelectedObfuscation
data class AdvancedSettingsViewModelState(
val mtuValue: String,
+ val isAutoConnectEnabled: Boolean,
+ val isLocalNetworkSharingEnabled: Boolean,
val isCustomDnsEnabled: Boolean,
val isAllowLanEnabled: Boolean,
val customDnsList: List<CustomDnsItem>,
@@ -18,6 +20,8 @@ data class AdvancedSettingsViewModelState(
is AdvancedSettingsDialogState.MtuDialog ->
AdvancedSettingsUiState.MtuDialogUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -28,6 +32,8 @@ data class AdvancedSettingsViewModelState(
is AdvancedSettingsDialogState.DnsDialog ->
AdvancedSettingsUiState.DnsDialogUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -35,9 +41,21 @@ data class AdvancedSettingsViewModelState(
stagedDns = dialogState.stagedDns,
selectedObfuscation = selectedObfuscation
)
+ is AdvancedSettingsDialogState.LocalNetworkSharingInfoDialog ->
+ AdvancedSettingsUiState.LocalNetworkSharingInfoDialogUiState(
+ mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
+ isCustomDnsEnabled = isCustomDnsEnabled,
+ isAllowLanEnabled = isAllowLanEnabled,
+ customDnsItems = customDnsList,
+ contentBlockersOptions = contentBlockersOptions
+ )
is AdvancedSettingsDialogState.ContentBlockersInfoDialog ->
AdvancedSettingsUiState.ContentBlockersInfoDialogUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -47,6 +65,8 @@ data class AdvancedSettingsViewModelState(
is AdvancedSettingsDialogState.CustomDnsInfoDialog ->
AdvancedSettingsUiState.CustomDnsInfoDialogUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -55,6 +75,8 @@ data class AdvancedSettingsViewModelState(
is AdvancedSettingsDialogState.MalwareInfoDialog ->
AdvancedSettingsUiState.MalwareInfoDialogUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -73,6 +95,8 @@ data class AdvancedSettingsViewModelState(
else ->
AdvancedSettingsUiState.DefaultUiState(
mtu = mtuValue,
+ isAutoConnectEnabled = isAutoConnectEnabled,
+ isLocalNetworkSharingEnabled = isLocalNetworkSharingEnabled,
isCustomDnsEnabled = isCustomDnsEnabled,
isAllowLanEnabled = isAllowLanEnabled,
customDnsItems = customDnsList,
@@ -88,6 +112,8 @@ data class AdvancedSettingsViewModelState(
fun default() =
AdvancedSettingsViewModelState(
mtuValue = EMPTY_STRING,
+ isAutoConnectEnabled = false,
+ isLocalNetworkSharingEnabled = false,
isCustomDnsEnabled = false,
customDnsList = listOf(),
contentBlockersOptions = DefaultDnsOptions(),
@@ -105,6 +131,8 @@ sealed class AdvancedSettingsDialogState {
data class DnsDialog(val stagedDns: StagedDns) : AdvancedSettingsDialogState()
+ object LocalNetworkSharingInfoDialog : AdvancedSettingsDialogState()
+
object ContentBlockersInfoDialog : AdvancedSettingsDialogState()
object CustomDnsInfoDialog : AdvancedSettingsDialogState()