diff options
Diffstat (limited to 'android/app/src')
3 files changed, 35 insertions, 16 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt index b3f68cb0cf..963762c246 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt @@ -76,6 +76,7 @@ class VpnSettingsScreenTest { onSelectDeviceIpVersion: (Constraint<IpVersion>) -> Unit = {}, onToggleIpv6: (Boolean) -> Unit = {}, navigateToIpv6Info: () -> Unit = {}, + navigateToDeviceIpInfo: () -> Unit = {}, ) { setContentWithTheme { VpnSettingsScreen( @@ -110,6 +111,7 @@ class VpnSettingsScreenTest { onSelectDeviceIpVersion = onSelectDeviceIpVersion, onToggleIpv6 = onToggleIpv6, navigateToIpv6Info = navigateToIpv6Info, + navigateToDeviceIpInfo = navigateToDeviceIpInfo, ) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/DeviceIpInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/DeviceIpInfoDialog.kt new file mode 100644 index 0000000000..196bdd922b --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/info/DeviceIpInfoDialog.kt @@ -0,0 +1,25 @@ +package net.mullvad.mullvadvpn.compose.dialog.info + +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import androidx.lifecycle.compose.dropUnlessResumed +import com.ramcosta.composedestinations.annotation.Destination +import com.ramcosta.composedestinations.annotation.RootGraph +import com.ramcosta.composedestinations.navigation.DestinationsNavigator +import com.ramcosta.composedestinations.spec.DestinationStyle +import net.mullvad.mullvadvpn.R + +@Destination<RootGraph>(style = DestinationStyle.Dialog::class) +@Composable +fun DeviceIpInfo(navigator: DestinationsNavigator) { + InfoDialog( + message = + buildString { + append(stringResource(R.string.device_ip_info_first_paragraph)) + appendLine() + appendLine() + append(stringResource(R.string.device_ip_info_second_paragraph)) + }, + onDismiss = dropUnlessResumed { navigator.navigateUp() }, + ) +} diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt index ea0e63fb32..bf7dd56274 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt @@ -35,6 +35,7 @@ import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.AutoConnectAndLockdownModeDestination import com.ramcosta.composedestinations.generated.destinations.ContentBlockersInfoDestination import com.ramcosta.composedestinations.generated.destinations.CustomDnsInfoDestination +import com.ramcosta.composedestinations.generated.destinations.DeviceIpInfoDestination import com.ramcosta.composedestinations.generated.destinations.DnsDestination import com.ramcosta.composedestinations.generated.destinations.Ipv6InfoDestination import com.ramcosta.composedestinations.generated.destinations.LocalNetworkSharingInfoDestination @@ -145,6 +146,7 @@ private fun PreviewVpnSettings( onSelectDeviceIpVersion = {}, onToggleIpv6 = {}, navigateToIpv6Info = {}, + navigateToDeviceIpInfo = {}, ) } } @@ -276,6 +278,7 @@ fun VpnSettings( onSelectDeviceIpVersion = vm::onDeviceIpVersionSelected, onToggleIpv6 = vm::setIpv6Enabled, navigateToIpv6Info = dropUnlessResumed { navigator.navigate(Ipv6InfoDestination) }, + navigateToDeviceIpInfo = dropUnlessResumed { navigator.navigate(DeviceIpInfoDestination) }, ) } @@ -315,6 +318,7 @@ fun VpnSettingsScreen( onSelectDeviceIpVersion: (ipVersion: Constraint<IpVersion>) -> Unit, onToggleIpv6: (Boolean) -> Unit, navigateToIpv6Info: () -> Unit, + navigateToDeviceIpInfo: () -> Unit, ) { var expandContentBlockersState by rememberSaveable { mutableStateOf(false) } val topPadding = 6.dp @@ -674,7 +678,10 @@ fun VpnSettingsScreen( } itemWithDivider { - InformationComposeCell(title = stringResource(R.string.device_ip_version_title)) + InformationComposeCell( + title = stringResource(R.string.device_ip_version_title), + onInfoClicked = navigateToDeviceIpInfo, + ) } itemWithDivider { SelectableCell( @@ -698,21 +705,6 @@ fun VpnSettingsScreen( ) } item { - Text( - text = stringResource(R.string.device_ip_version_subtitle), - style = MaterialTheme.typography.labelMedium, - color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = - Modifier.padding( - start = Dimens.cellStartPadding, - top = topPadding, - end = Dimens.cellEndPadding, - ), - ) - Spacer(modifier = Modifier.height(Dimens.cellVerticalSpacing)) - } - - item { MtuComposeCell(mtuValue = state.mtu, onEditMtu = { navigateToMtuDialog(state.mtu) }) } item { MtuSubtitle(modifier = Modifier.testTag(LAZY_LIST_LAST_ITEM_TEST_TAG)) } |
