diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-03-12 11:39:21 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-03-12 11:58:56 +0100 |
| commit | 335a6c3cc20fbac95133b9a8776dd0f5f7d35aea (patch) | |
| tree | e1030bf0ade892bb9d950ef3b3c65e0d9cf9d680 /android/app/src | |
| parent | 09d7368937d8bcf6c20ce4dedcd7a69c03f61f1d (diff) | |
| download | mullvadvpn-335a6c3cc20fbac95133b9a8776dd0f5f7d35aea.tar.xz mullvadvpn-335a6c3cc20fbac95133b9a8776dd0f5f7d35aea.zip | |
Restore legacy auto-connect for non-TV devices
Diffstat (limited to 'android/app/src')
3 files changed, 49 insertions, 15 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt index 13aaea4334..15f6e4d111 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag +import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -109,6 +110,11 @@ internal fun BaseCellTitle( @Composable fun BaseSubtitleCell(text: String, modifier: Modifier = Modifier) { + BaseSubtitleCell(text = AnnotatedString(text), modifier = modifier) +} + +@Composable +fun BaseSubtitleCell(text: AnnotatedString, modifier: Modifier = Modifier) { Text( text = text, style = MaterialTheme.typography.labelMedium, 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 e7d6e7f1c3..6aeea8897d 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 @@ -15,6 +15,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -193,3 +194,8 @@ fun CustomDnsCellSubtitle(isCellClickable: Boolean, modifier: Modifier) { fun SwitchComposeSubtitleCell(text: String, modifier: Modifier = Modifier) { BaseSubtitleCell(text = text, modifier = modifier) } + +@Composable +fun SwitchComposeSubtitleCell(text: AnnotatedString, modifier: Modifier = Modifier) { + BaseSubtitleCell(text = text, modifier = modifier) +} 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 0530cfb4ae..403b1bb57e 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 @@ -22,8 +22,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.core.text.HtmlCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -49,6 +51,7 @@ import net.mullvad.mullvadvpn.compose.cell.SelectableCell import net.mullvad.mullvadvpn.compose.cell.SwitchComposeSubtitleCell import net.mullvad.mullvadvpn.compose.component.NavigateBackIconButton import net.mullvad.mullvadvpn.compose.component.ScaffoldWithMediumTopBar +import net.mullvad.mullvadvpn.compose.component.textResource import net.mullvad.mullvadvpn.compose.destinations.AutoConnectAndLockdownModeDestination import net.mullvad.mullvadvpn.compose.destinations.ContentBlockersInfoDialogDestination import net.mullvad.mullvadvpn.compose.destinations.CustomDnsInfoDialogDestination @@ -65,6 +68,7 @@ import net.mullvad.mullvadvpn.compose.dialog.WireguardCustomPortNavArgs import net.mullvad.mullvadvpn.compose.dialog.WireguardPortInfoDialogArgument import net.mullvad.mullvadvpn.compose.extensions.itemWithDivider import net.mullvad.mullvadvpn.compose.extensions.itemsIndexedWithDivider +import net.mullvad.mullvadvpn.compose.extensions.toAnnotatedString import net.mullvad.mullvadvpn.compose.state.VpnSettingsUiState import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_LAST_ITEM_TEST_TAG import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG @@ -305,21 +309,39 @@ fun VpnSettingsScreen( text = stringResource(id = R.string.auto_connect_and_lockdown_mode_footer) ) } - } else { - item { - Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) - HeaderSwitchComposeCell( - title = stringResource(R.string.auto_connect), - isToggled = state.isAutoConnectEnabled, - isEnabled = true, - onCellClicked = { newValue -> onToggleAutoConnect(newValue) } - ) - } - item { - SwitchComposeSubtitleCell( - text = stringResource(id = R.string.auto_connect_footer) - ) - } + } + item { + Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) + HeaderSwitchComposeCell( + title = + stringResource( + if (state.systemVpnSettingsAvailable) { + R.string.auto_connect_legacy + } else { + R.string.auto_connect + } + ), + isToggled = state.isAutoConnectEnabled, + isEnabled = true, + onCellClicked = { newValue -> onToggleAutoConnect(newValue) } + ) + } + item { + SwitchComposeSubtitleCell( + text = + HtmlCompat.fromHtml( + if (state.systemVpnSettingsAvailable) { + textResource( + R.string.auto_connect_footer_legacy, + textResource(R.string.auto_connect_and_lockdown_mode) + ) + } else { + textResource(R.string.auto_connect_footer) + }, + HtmlCompat.FROM_HTML_MODE_COMPACT + ) + .toAnnotatedString(boldFontWeight = FontWeight.ExtraBold) + ) } item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) |
