summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-09-30 13:35:26 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-09-30 13:35:26 +0200
commita0a6d92fad5058ebc3b7ffe2b707770d27bf7cf9 (patch)
tree20f9769dfa38f50fde2f2df3a974e6d8cff4e9f0
parentf821c46c737259d6410bee6988e26f405d2f039a (diff)
parente5628f5bc0f233a358ea56aa8d8502ebe1174b2a (diff)
downloadmullvadvpn-a0a6d92fad5058ebc3b7ffe2b707770d27bf7cf9.tar.xz
mullvadvpn-a0a6d92fad5058ebc3b7ffe2b707770d27bf7cf9.zip
Merge branch 'change-grid-spacings-droid-717'
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/FilterRow.kt31
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt5
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt40
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt11
-rw-r--r--android/lib/resource/src/main/res/values-da/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-de/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-es/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-fi/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-fr/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-it/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-ja/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-ko/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-my/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-nb/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-nl/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-pl/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-pt/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-ru/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-sv/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-th/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-tr/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-zh-rCN/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values-zh-rTW/strings.xml1
-rw-r--r--android/lib/resource/src/main/res/values/strings.xml1
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt47
-rw-r--r--android/lib/tv/src/main/kotlin/net/mullvad/mullvadvpn/lib/tv/NavigationDrawerTv.kt4
-rw-r--r--android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/AnimatedNotificationBanner.kt2
-rw-r--r--android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/RelayListHeader.kt5
-rw-r--r--desktop/packages/mullvad-vpn/locales/messages.pot3
33 files changed, 68 insertions, 110 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt
index 972a8dc3dd..2545656282 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt
@@ -49,7 +49,7 @@ fun DnsCell(
iconView = {
Icon(
modifier =
- Modifier.padding(end = Dimens.verticalDividerPadding)
+ Modifier.padding(end = Dimens.smallPadding)
.alpha(
when {
isUnreachableLocalDnsWarningVisible ||
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/FilterRow.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/FilterRow.kt
index 710c4a5cac..508d4af359 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/FilterRow.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/FilterRow.kt
@@ -1,13 +1,13 @@
package net.mullvad.mullvadvpn.compose.cell
+import androidx.compose.foundation.background
import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -24,11 +24,14 @@ import net.mullvad.mullvadvpn.usecase.FilterChip
@Composable
private fun PreviewFilterCell() {
AppTheme {
- FilterRow(
- filters = listOf(FilterChip.Ownership(Ownership.MullvadOwned), FilterChip.Provider(2)),
- onRemoveOwnershipFilter = {},
- onRemoveProviderFilter = {},
- )
+ Column(modifier = Modifier.background(MaterialTheme.colorScheme.surface)) {
+ FilterRow(
+ filters =
+ listOf(FilterChip.Ownership(Ownership.MullvadOwned), FilterChip.Provider(2)),
+ onRemoveOwnershipFilter = {},
+ onRemoveProviderFilter = {},
+ )
+ }
}
}
@@ -36,27 +39,15 @@ private fun PreviewFilterCell() {
fun FilterRow(
filters: List<FilterChip>,
modifier: Modifier = Modifier,
- showTitle: Boolean = true,
onRemoveOwnershipFilter: () -> Unit,
onRemoveProviderFilter: () -> Unit,
) {
val scrollState = rememberScrollState()
Row(
verticalAlignment = Alignment.CenterVertically,
- modifier =
- modifier
- .padding(horizontal = Dimens.searchFieldHorizontalPadding)
- .fillMaxWidth()
- .horizontalScroll(scrollState),
+ modifier = modifier.fillMaxWidth().horizontalScroll(scrollState),
horizontalArrangement = Arrangement.spacedBy(Dimens.chipSpace),
) {
- if (showTitle) {
- Text(
- text = stringResource(id = R.string.filters),
- color = MaterialTheme.colorScheme.onPrimary,
- style = MaterialTheme.typography.labelLarge,
- )
- }
filters.forEach {
when (it) {
is FilterChip.Ownership ->
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt
index 62b9cf57c4..293d24af78 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt
@@ -212,7 +212,7 @@ private fun RedeemSuccessBody(message: String) {
Text(
text = stringResource(id = R.string.voucher_success_title),
modifier =
- Modifier.padding(start = Dimens.smallPadding, top = Dimens.successIconVerticalPadding)
+ Modifier.padding(start = Dimens.smallPadding, top = Dimens.mediumPadding)
.fillMaxWidth(),
color = MaterialTheme.colorScheme.onSurface,
style = MaterialTheme.typography.titleMedium,
@@ -221,8 +221,7 @@ private fun RedeemSuccessBody(message: String) {
Text(
text = message,
modifier =
- Modifier.padding(start = Dimens.smallPadding, top = Dimens.cellTopPadding)
- .fillMaxWidth(),
+ Modifier.padding(start = Dimens.smallPadding, top = Dimens.smallPadding).fillMaxWidth(),
color = MaterialTheme.colorScheme.onSurfaceVariant,
style = MaterialTheme.typography.labelLarge,
)
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt
index 114bc1a030..afa585d29f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt
@@ -156,7 +156,7 @@ fun CustomListLocationsScreen(
modifier =
Modifier.fillMaxWidth()
.height(Dimens.searchFieldHeight)
- .padding(horizontal = Dimens.searchFieldHorizontalPadding),
+ .padding(horizontal = Dimens.mediumPadding),
backgroundColor = MaterialTheme.colorScheme.tertiaryContainer,
textColor = MaterialTheme.colorScheme.onTertiaryContainer,
) { searchString ->
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt
index fa2a30bc83..e1a7857819 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt
@@ -289,7 +289,7 @@ private fun ColumnScope.DeviceListHeader(state: DeviceListUiState) {
top = Dimens.smallPadding,
start = Dimens.sideMargin,
end = Dimens.sideMargin,
- bottom = Dimens.spacingAboveButton,
+ bottom = Dimens.cellVerticalSpacing,
),
)
}
@@ -306,7 +306,7 @@ private fun DeviceListButtonPanel(
Modifier.padding(
start = Dimens.sideMargin,
end = Dimens.sideMargin,
- top = Dimens.spacingAboveButton,
+ top = Dimens.mediumPadding,
)
) {
VariantButton(
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 cb495a3ba6..a997b39ad4 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
@@ -566,7 +566,7 @@ fun VpnSettingsContent(
},
bodyView = {},
background = MaterialTheme.colorScheme.surfaceContainerHighest,
- startPadding = Dimens.cellStartPaddingLarge,
+ startPadding = Dimens.indentedCellStartPadding,
)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt
index a14788584d..3026314b36 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt
@@ -37,6 +37,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -72,6 +73,7 @@ import net.mullvad.mullvadvpn.lib.model.RelayItemId
import net.mullvad.mullvadvpn.lib.theme.AppTheme
import net.mullvad.mullvadvpn.lib.theme.Dimens
import net.mullvad.mullvadvpn.lib.theme.color.AlphaScrollbar
+import net.mullvad.mullvadvpn.lib.ui.designsystem.RelayListHeader
import net.mullvad.mullvadvpn.usecase.FilterChip
import net.mullvad.mullvadvpn.util.Lce
import net.mullvad.mullvadvpn.viewmodel.location.SearchLocationSideEffect
@@ -311,7 +313,6 @@ fun SearchLocationScreen(
) {
filterRow(
filters = state.contentOrNull()?.filterChips ?: emptyList(),
- onBackgroundColor = onBackgroundColor,
onRemoveOwnershipFilter = onRemoveOwnershipFilter,
onRemoveProviderFilter = onRemoveProviderFilter,
)
@@ -336,15 +337,23 @@ fun SearchLocationScreen(
locationBottomSheetState = newSheetState
},
customListHeader = {
- Title(
- text = stringResource(R.string.custom_lists),
- onBackgroundColor = onBackgroundColor,
+ RelayListHeader(
+ content = {
+ Text(
+ text = stringResource(R.string.custom_lists),
+ overflow = TextOverflow.Ellipsis,
+ )
+ }
)
},
locationHeader = {
- Title(
- text = stringResource(R.string.locations),
- onBackgroundColor = onBackgroundColor,
+ RelayListHeader(
+ content = {
+ Text(
+ text = stringResource(R.string.locations),
+ overflow = TextOverflow.Ellipsis,
+ )
+ }
)
},
)
@@ -413,18 +422,13 @@ private fun SearchBar(
private fun LazyListScope.filterRow(
filters: List<FilterChip>,
- onBackgroundColor: Color,
onRemoveOwnershipFilter: () -> Unit,
onRemoveProviderFilter: () -> Unit,
) {
if (filters.isNotEmpty()) {
item {
- Title(text = stringResource(R.string.filters), onBackgroundColor = onBackgroundColor)
- }
- item {
FilterRow(
filters = filters,
- showTitle = false,
onRemoveOwnershipFilter = onRemoveOwnershipFilter,
onRemoveProviderFilter = onRemoveProviderFilter,
)
@@ -432,18 +436,6 @@ private fun LazyListScope.filterRow(
}
}
-@Composable
-private fun Title(text: String, onBackgroundColor: Color) {
- Text(
- text = text,
- color = onBackgroundColor,
- modifier =
- Modifier.fillMaxWidth()
- .padding(horizontal = Dimens.sideMargin, vertical = Dimens.smallPadding),
- style = MaterialTheme.typography.labelLarge,
- )
-}
-
private fun LazyListScope.loading() {
item(contentType = ContentType.PROGRESS) { MullvadCircularProgressIndicatorLarge() }
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt
index 754a162029..7e83680499 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt
@@ -412,7 +412,12 @@ fun SelectLocationScreen(
) { filterChips ->
if (filterChips.isNotEmpty()) {
FilterRow(
- modifier = Modifier.padding(bottom = Dimens.smallPadding),
+ modifier =
+ Modifier.padding(
+ bottom = Dimens.smallPadding,
+ start = Dimens.mediumPadding,
+ end = Dimens.mediumPadding,
+ ),
filters = filterChips,
onRemoveOwnershipFilter = removeOwnershipFilter,
onRemoveProviderFilter = removeProviderFilter,
@@ -515,8 +520,8 @@ private fun MultihopBar(
modifier =
Modifier.fillMaxWidth()
.padding(
- start = Dimens.sideMargin,
- end = Dimens.sideMargin,
+ start = Dimens.mediumPadding,
+ end = Dimens.mediumPadding,
bottom = Dimens.smallPadding,
)
) {
diff --git a/android/lib/resource/src/main/res/values-da/strings.xml b/android/lib/resource/src/main/res/values-da/strings.xml
index 690c98ca8c..71e760aef1 100644
--- a/android/lib/resource/src/main/res/values-da/strings.xml
+++ b/android/lib/resource/src/main/res/values-da/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Tilsløring</string>
<string name="feature_quantum_resistant">Kvantemodstand</string>
<string name="filter">Filter</string>
- <string name="filters">Filtre:</string>
<string name="foreground_notification_channel_description">Viser den aktuelle VPN-tunnelstatus</string>
<string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
<string name="go_to_login">Gå til login</string>
diff --git a/android/lib/resource/src/main/res/values-de/strings.xml b/android/lib/resource/src/main/res/values-de/strings.xml
index 29124f9312..e29773eedc 100644
--- a/android/lib/resource/src/main/res/values-de/strings.xml
+++ b/android/lib/resource/src/main/res/values-de/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Verschleierung</string>
<string name="feature_quantum_resistant">Quantenresistenz</string>
<string name="filter">Filter</string>
- <string name="filters">Filter:</string>
<string name="foreground_notification_channel_description">Zeigt den aktuellen Status des VPN-Tunnels an</string>
<string name="foreground_notification_channel_name">Status des VPN-Tunnels</string>
<string name="go_to_login">Zur Anmeldung</string>
diff --git a/android/lib/resource/src/main/res/values-es/strings.xml b/android/lib/resource/src/main/res/values-es/strings.xml
index b1f05a9e42..3e9ecd0417 100644
--- a/android/lib/resource/src/main/res/values-es/strings.xml
+++ b/android/lib/resource/src/main/res/values-es/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Ofuscación</string>
<string name="feature_quantum_resistant">Resistencia cuántica</string>
<string name="filter">Filtrar</string>
- <string name="filters">Filtros:</string>
<string name="foreground_notification_channel_description">Muestra el estado actual del túnel VPN</string>
<string name="foreground_notification_channel_name">Estado del túnel VPN</string>
<string name="go_to_login">Iniciar sesión</string>
diff --git a/android/lib/resource/src/main/res/values-fi/strings.xml b/android/lib/resource/src/main/res/values-fi/strings.xml
index 650f519fc1..d1ea20ed20 100644
--- a/android/lib/resource/src/main/res/values-fi/strings.xml
+++ b/android/lib/resource/src/main/res/values-fi/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Hämäysteknologia</string>
<string name="feature_quantum_resistant">Kvanttihyökkäysten esto</string>
<string name="filter">Suodatin</string>
- <string name="filters">Suodattimet:</string>
<string name="foreground_notification_channel_description">Näyttää VPN-tunnelin nykyisen tilan</string>
<string name="foreground_notification_channel_name">VPN-tunnelin tila</string>
<string name="go_to_login">Siirry kirjautumiseen</string>
diff --git a/android/lib/resource/src/main/res/values-fr/strings.xml b/android/lib/resource/src/main/res/values-fr/strings.xml
index dd845ac55a..42a6b17c50 100644
--- a/android/lib/resource/src/main/res/values-fr/strings.xml
+++ b/android/lib/resource/src/main/res/values-fr/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Dissimulation</string>
<string name="feature_quantum_resistant">Résistance quantique</string>
<string name="filter">Filtrer</string>
- <string name="filters">Filtres :</string>
<string name="foreground_notification_channel_description">Affiche l\'état actuel du tunnel VPN</string>
<string name="foreground_notification_channel_name">État du tunnel VPN</string>
<string name="go_to_login">Aller à la connexion</string>
diff --git a/android/lib/resource/src/main/res/values-it/strings.xml b/android/lib/resource/src/main/res/values-it/strings.xml
index 3370e1b1a9..7d413b5dd7 100644
--- a/android/lib/resource/src/main/res/values-it/strings.xml
+++ b/android/lib/resource/src/main/res/values-it/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Offuscamento</string>
<string name="feature_quantum_resistant">Resistenza ad attacchi quantistici</string>
<string name="filter">Filtra</string>
- <string name="filters">Filtri:</string>
<string name="foreground_notification_channel_description">Mostra lo stato attuale del tunnel VPN</string>
<string name="foreground_notification_channel_name">Stato del tunnel VPN</string>
<string name="go_to_login">Vai al login</string>
diff --git a/android/lib/resource/src/main/res/values-ja/strings.xml b/android/lib/resource/src/main/res/values-ja/strings.xml
index fb140f7e99..3c3d46c5ae 100644
--- a/android/lib/resource/src/main/res/values-ja/strings.xml
+++ b/android/lib/resource/src/main/res/values-ja/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">難読化</string>
<string name="feature_quantum_resistant">耐量子</string>
<string name="filter">絞り込み</string>
- <string name="filters">絞り込み:</string>
<string name="foreground_notification_channel_description">現在のVPNトンネルのステータスを表示します</string>
<string name="foreground_notification_channel_name">VPNトンネルのステータス</string>
<string name="go_to_login">ログインに進む</string>
diff --git a/android/lib/resource/src/main/res/values-ko/strings.xml b/android/lib/resource/src/main/res/values-ko/strings.xml
index 26aa212889..68a75002b0 100644
--- a/android/lib/resource/src/main/res/values-ko/strings.xml
+++ b/android/lib/resource/src/main/res/values-ko/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">난독 처리</string>
<string name="feature_quantum_resistant">양자 저항</string>
<string name="filter">필터</string>
- <string name="filters">필터:</string>
<string name="foreground_notification_channel_description">현재 VPN 터널 상태 표시</string>
<string name="foreground_notification_channel_name">VPN 터널 상태</string>
<string name="go_to_login">로그인하기</string>
diff --git a/android/lib/resource/src/main/res/values-my/strings.xml b/android/lib/resource/src/main/res/values-my/strings.xml
index 41464f5ad3..949917d04e 100644
--- a/android/lib/resource/src/main/res/values-my/strings.xml
+++ b/android/lib/resource/src/main/res/values-my/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Obfuscation</string>
<string name="feature_quantum_resistant">Quantum ခုခံမှု</string>
<string name="filter">စစ်ထုတ်မှု</string>
- <string name="filters">စစ်ထုတ်မှုများ-</string>
<string name="foreground_notification_channel_description">လက်ရှိ VPN Tunnel အခြေအနေကို ပြသပေးပါသည်</string>
<string name="foreground_notification_channel_name">VPN Tunnel အခြေအနေ</string>
<string name="go_to_login">ဝင်ရောက်ရန် သွားပါ</string>
diff --git a/android/lib/resource/src/main/res/values-nb/strings.xml b/android/lib/resource/src/main/res/values-nb/strings.xml
index 1e897cce10..d8561f882c 100644
--- a/android/lib/resource/src/main/res/values-nb/strings.xml
+++ b/android/lib/resource/src/main/res/values-nb/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Tilsløring</string>
<string name="feature_quantum_resistant">Kvantemotstand</string>
<string name="filter">Filter</string>
- <string name="filters">Filtre:</string>
<string name="foreground_notification_channel_description">Viser gjeldende VPN-tunnelstatus</string>
<string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
<string name="go_to_login">Gå til pålogging</string>
diff --git a/android/lib/resource/src/main/res/values-nl/strings.xml b/android/lib/resource/src/main/res/values-nl/strings.xml
index 9d4f01ba60..414186f1b9 100644
--- a/android/lib/resource/src/main/res/values-nl/strings.xml
+++ b/android/lib/resource/src/main/res/values-nl/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Obfuscatie</string>
<string name="feature_quantum_resistant">Kwantumbestendigheid</string>
<string name="filter">Filter</string>
- <string name="filters">Filters:</string>
<string name="foreground_notification_channel_description">Toont de huidige status van de VPN-tunnel</string>
<string name="foreground_notification_channel_name">Status VPN-tunnel</string>
<string name="go_to_login">Ga naar aanmelden</string>
diff --git a/android/lib/resource/src/main/res/values-pl/strings.xml b/android/lib/resource/src/main/res/values-pl/strings.xml
index fdb0581f74..f3defda5e1 100644
--- a/android/lib/resource/src/main/res/values-pl/strings.xml
+++ b/android/lib/resource/src/main/res/values-pl/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Zaciemnianie</string>
<string name="feature_quantum_resistant">Odporność na ataki z użyciem komputerów kwantowych</string>
<string name="filter">Filtruj</string>
- <string name="filters">Filtry:</string>
<string name="foreground_notification_channel_description">Pokazuje bieżący status tunelu VPN</string>
<string name="foreground_notification_channel_name">Status tunelu VPN</string>
<string name="go_to_login">Przejdź do logowania</string>
diff --git a/android/lib/resource/src/main/res/values-pt/strings.xml b/android/lib/resource/src/main/res/values-pt/strings.xml
index 401636904c..80da9bacfb 100644
--- a/android/lib/resource/src/main/res/values-pt/strings.xml
+++ b/android/lib/resource/src/main/res/values-pt/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Ofuscação</string>
<string name="feature_quantum_resistant">Resistência quântica</string>
<string name="filter">Filtrar</string>
- <string name="filters">Filtros:</string>
<string name="foreground_notification_channel_description">Indica o estado atual do túnel VPN</string>
<string name="foreground_notification_channel_name">Estado do túnel VPN</string>
<string name="go_to_login">Ir para a ligação</string>
diff --git a/android/lib/resource/src/main/res/values-ru/strings.xml b/android/lib/resource/src/main/res/values-ru/strings.xml
index b71b2fd434..4c6ddb676b 100644
--- a/android/lib/resource/src/main/res/values-ru/strings.xml
+++ b/android/lib/resource/src/main/res/values-ru/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Обфускация</string>
<string name="feature_quantum_resistant">Квантовая устойчивость</string>
<string name="filter">Фильтр</string>
- <string name="filters">Фильтры:</string>
<string name="foreground_notification_channel_description">Показывает текущее состояние VPN-туннеля</string>
<string name="foreground_notification_channel_name">Состояние туннеля VPN</string>
<string name="go_to_login">Войти</string>
diff --git a/android/lib/resource/src/main/res/values-sv/strings.xml b/android/lib/resource/src/main/res/values-sv/strings.xml
index 9a4a94088c..096307c116 100644
--- a/android/lib/resource/src/main/res/values-sv/strings.xml
+++ b/android/lib/resource/src/main/res/values-sv/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Obfuskering</string>
<string name="feature_quantum_resistant">Kvantresistens</string>
<string name="filter">Filtrera</string>
- <string name="filters">Filter:</string>
<string name="foreground_notification_channel_description">Visar nuvarande status för VPN-tunnel</string>
<string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
<string name="go_to_login">Gå till inloggning</string>
diff --git a/android/lib/resource/src/main/res/values-th/strings.xml b/android/lib/resource/src/main/res/values-th/strings.xml
index 9cdc4579db..d62f2b275d 100644
--- a/android/lib/resource/src/main/res/values-th/strings.xml
+++ b/android/lib/resource/src/main/res/values-th/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">การทำให้ข้อมูลยุ่งเหยิง</string>
<string name="feature_quantum_resistant">การต่อต้านควอนตัม</string>
<string name="filter">ตัวกรอง</string>
- <string name="filters">ตัวกรอง:</string>
<string name="foreground_notification_channel_description">แสดงสถานะอุโมงค์ VPN ในปัจจุบัน</string>
<string name="foreground_notification_channel_name">สถานะอุโมงค์ VPN</string>
<string name="go_to_login">ไปเข้าสู่ระบบ</string>
diff --git a/android/lib/resource/src/main/res/values-tr/strings.xml b/android/lib/resource/src/main/res/values-tr/strings.xml
index b7e79637e8..71ecabf6c0 100644
--- a/android/lib/resource/src/main/res/values-tr/strings.xml
+++ b/android/lib/resource/src/main/res/values-tr/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">Gizleme</string>
<string name="feature_quantum_resistant">Kuantum direnci</string>
<string name="filter">Filtrele</string>
- <string name="filters">Filtreler:</string>
<string name="foreground_notification_channel_description">Mevcut VPN tünelinin durumunu gösterir</string>
<string name="foreground_notification_channel_name">VPN tüneli durumu</string>
<string name="go_to_login">Giriş sayfasına git</string>
diff --git a/android/lib/resource/src/main/res/values-zh-rCN/strings.xml b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
index 33076956af..842c30a081 100644
--- a/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
+++ b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">混淆</string>
<string name="feature_quantum_resistant">量子阻力</string>
<string name="filter">筛选</string>
- <string name="filters">筛选器:</string>
<string name="foreground_notification_channel_description">显示当前的 VPN 隧道状态</string>
<string name="foreground_notification_channel_name">VPN 隧道状态</string>
<string name="go_to_login">前往登录</string>
diff --git a/android/lib/resource/src/main/res/values-zh-rTW/strings.xml b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
index 33aa41a07f..dd3c775759 100644
--- a/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
+++ b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
@@ -197,7 +197,6 @@
<string name="feature_obfuscation">混淆</string>
<string name="feature_quantum_resistant">抗量子</string>
<string name="filter">篩選</string>
- <string name="filters">篩選器:</string>
<string name="foreground_notification_channel_description">顯示目前的 VPN 通道狀態</string>
<string name="foreground_notification_channel_name">VPN 通道狀態</string>
<string name="go_to_login">前往登入</string>
diff --git a/android/lib/resource/src/main/res/values/strings.xml b/android/lib/resource/src/main/res/values/strings.xml
index b27fe0282b..45334336eb 100644
--- a/android/lib/resource/src/main/res/values/strings.xml
+++ b/android/lib/resource/src/main/res/values/strings.xml
@@ -382,7 +382,6 @@
<string name="clear_input">Clear input</string>
<string name="x_entry">%s (Entry)</string>
<string name="x_exit">%s (Exit)</string>
- <string name="filters">Filters:</string>
<string name="removed_provider">%s (removed)</string>
<string name="daita_description_slide_1_first_paragraph">Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.</string>
<string name="daita_description_slide_1_second_paragraph">%1$s (%2$s) hides patterns in your encrypted VPN traffic.</string>
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
index 5179b5c306..8f4426a907 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
@@ -13,31 +13,28 @@ data class Dimensions(
val buttonHeight: Dp = 44.dp,
val buttonSpacing: Dp = 8.dp,
val cellEndPadding: Dp = 16.dp,
- val cellFooterTopPadding: Dp = 6.dp,
+ val cellFooterTopPadding: Dp = 4.dp,
val cellHeight: Dp = 56.dp,
val cellHeightTwoRows: Dp = 72.dp,
- val cellStartPadding: Dp = 14.dp,
- val cellStartPaddingLarge: Dp = 50.dp,
- val cellTopPadding: Dp = 6.dp,
+ val cellStartPadding: Dp = 16.dp,
val cellVerticalSpacing: Dp = 24.dp,
val chipSpace: Dp = 8.dp,
val chipVerticalPadding: Dp = 4.dp,
val circularProgressBarLargeSize: Dp = 40.dp,
- val circularProgressBarLargeStrokeWidth: Dp = 6.dp,
+ val circularProgressBarLargeStrokeWidth: Dp = 8.dp,
val circularProgressBarMediumSize: Dp = 32.dp,
val circularProgressBarMediumStrokeWidth: Dp = 4.dp,
val circularProgressBarSmallSize: Dp = 24.dp,
- val circularProgressBarSmallStrokeWidth: Dp = 3.dp,
+ val circularProgressBarSmallStrokeWidth: Dp = 4.dp,
val connectButtonExtraPadding: Dp = 4.dp,
val connectionCardMaxWidth: Dp = 480.dp,
- val customPortBoxMinWidth: Dp = 60.dp,
+ val customPortBoxMinWidth: Dp = 56.dp,
val deleteIconSize: Dp = 24.dp,
- val dialogIconHeight: Dp = 44.dp,
+ val dialogIconHeight: Dp = 48.dp,
val formTextFieldMinHeight: Dp = 72.dp,
- val iconFailSuccessTopMargin: Dp = 30.dp,
- val indentedCellStartPadding: Dp = 38.dp,
- val indicatorPadding: Dp = 2.dp,
- val indicatorSize: Dp = 6.dp,
+ val indentedCellStartPadding: Dp = 48.dp,
+ val indicatorPadding: Dp = 4.dp,
+ val indicatorSize: Dp = 8.dp,
val largePadding: Dp = 32.dp,
val listIconSize: Dp = 24.dp,
val listItemDivider: Dp = 1.dp,
@@ -45,39 +42,33 @@ data class Dimensions(
val mediumPadding: Dp = 16.dp,
val mediumSpacer: Dp = 16.dp,
val miniPadding: Dp = 4.dp,
- val mullvadLogoTextHeight: Dp = 13.dp,
- val mullvadLogoTextStartPadding: Dp = 6.dp,
val notificationBannerEndPadding: Dp = 8.dp,
val notificationBannerStartPadding: Dp = 16.dp,
val notificationEndIconPadding: Dp = 4.dp,
- val notificationIconPadding: Dp = 10.dp,
+ // This is according to the design, should be updated in the design to standard size
val notificationStatusIconSize: Dp = 10.dp,
- val obfuscationNavigationBoxWidth: Dp = 60.dp,
+ val obfuscationNavigationBoxWidth: Dp = 56.dp,
val outLineButtonBorderWidth: Dp = 1.dp,
- val payIconHeight: Dp = 20.dp,
val privacyPolicyIconSize: Dp = 16.dp,
- val problemReportIconToTitlePadding: Dp = 60.dp,
val reconnectButtonMinInteractiveComponentSize: Dp = 40.dp,
val relayCircleSize: Dp = 16.dp,
- val relayCirclePadding: Dp = 6.dp,
+ val relayCirclePadding: Dp = 8.dp,
val relayItemCornerRadius: Dp = 16.dp,
val screenBottomMargin: Dp = 16.dp,
val screenTopMargin: Dp = 24.dp,
val searchFieldHeight: Dp = 42.dp,
val searchFieldHeightExpanded: Dp = 72.dp,
- val searchFieldHorizontalPadding: Dp = 22.dp,
+ val searchFieldHorizontalPadding: Dp = 20.dp,
val searchIconSize: Dp = 24.dp,
- val selectLocationTitlePadding: Dp = 12.dp,
- val selectableCellTextMargin: Dp = 12.dp,
+ val selectableCellTextMargin: Dp = 8.dp,
val settingsDetailsImageMaxWidth: Dp = 480.dp,
val sideMargin: Dp = 24.dp,
val smallIconSize: Dp = 16.dp,
val smallPadding: Dp = 8.dp,
val smallSpacer: Dp = 8.dp,
- val spacingAboveButton: Dp = 22.dp,
val splashLogoSize: Dp = 120.dp,
+ // Required to get the logo to look visually correct
val splashLogoTextHeight: Dp = 18.dp,
- val successIconVerticalPadding: Dp = 26.dp,
val switchIconSize: Dp = 24.dp,
val switchLocationRetryMinWidth: Dp = 48.dp,
val thinBorderWidth: Dp = 1.dp,
@@ -86,8 +77,12 @@ data class Dimensions(
val tvDrawerHeaderStartPadding: Dp = 12.dp,
val tvDrawerHeaderWithFocusStartPadding: Dp = 16.dp,
val tvDrawerHorizontalPadding: Dp = 12.dp,
- val verticalDividerPadding: Dp = 12.dp,
- val verticalSpace: Dp = 20.dp,
+ // Required to get the logo to look visually correct on TV
+ val tvMullvadLogoTextHeight: Dp = 13.dp,
+ // Required to get the logo to look visually correct on TV
+ val tvMullvadLogoTextStartPadding: Dp = 6.dp,
+ val verticalDividerPadding: Dp = 16.dp,
+ val verticalSpace: Dp = 16.dp,
val verticalSpacer: Dp = 1.dp,
)
diff --git a/android/lib/tv/src/main/kotlin/net/mullvad/mullvadvpn/lib/tv/NavigationDrawerTv.kt b/android/lib/tv/src/main/kotlin/net/mullvad/mullvadvpn/lib/tv/NavigationDrawerTv.kt
index 56956af406..38ad1a19ab 100644
--- a/android/lib/tv/src/main/kotlin/net/mullvad/mullvadvpn/lib/tv/NavigationDrawerTv.kt
+++ b/android/lib/tv/src/main/kotlin/net/mullvad/mullvadvpn/lib/tv/NavigationDrawerTv.kt
@@ -187,7 +187,7 @@ private fun NavigationDrawerTvHeader(
) {
Row(
verticalAlignment = Alignment.CenterVertically,
- horizontalArrangement = Arrangement.spacedBy(Dimens.mullvadLogoTextStartPadding),
+ horizontalArrangement = Arrangement.spacedBy(Dimens.tvMullvadLogoTextStartPadding),
) {
Icon(
modifier = Modifier.size(Dimens.mediumIconSize),
@@ -197,7 +197,7 @@ private fun NavigationDrawerTvHeader(
)
if (isExpanded) {
Icon(
- modifier = Modifier.height(Dimens.mullvadLogoTextHeight),
+ modifier = Modifier.height(Dimens.tvMullvadLogoTextHeight),
painter = painterResource(id = R.drawable.logo_text),
contentDescription = null, // No meaningful user info or action.
tint = Color.Unspecified, // Logo should not be tinted
diff --git a/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/AnimatedNotificationBanner.kt b/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/AnimatedNotificationBanner.kt
index 8889a37399..94a935db74 100644
--- a/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/AnimatedNotificationBanner.kt
+++ b/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/AnimatedNotificationBanner.kt
@@ -223,7 +223,7 @@ private fun NotificationAction(
onClick = onClick,
) {
Icon(
- modifier = Modifier.padding(Dimens.notificationIconPadding),
+ modifier = Modifier.padding(Dimens.smallPadding),
imageVector = imageVector,
contentDescription = contentDescription,
tint = MaterialTheme.colorScheme.onSurface,
diff --git a/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/RelayListHeader.kt b/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/RelayListHeader.kt
index 3dc20ff0e7..51a3d01b92 100644
--- a/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/RelayListHeader.kt
+++ b/android/lib/ui/designsystem/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/designsystem/RelayListHeader.kt
@@ -32,12 +32,11 @@ fun RelayListHeader(
) {
ProvideContentColorTextStyle(
MaterialTheme.colorScheme.onBackground,
- MaterialTheme.typography.bodyLarge,
+ MaterialTheme.typography.labelLarge,
) {
Row(
modifier =
- Modifier.padding(horizontal = Dimens.tinyPadding)
- .defaultMinSize(minHeight = LIST_HEADER_MIN_HEIGHT)
+ Modifier.defaultMinSize(minHeight = LIST_HEADER_MIN_HEIGHT)
.height(IntrinsicSize.Min)
.then(modifier),
verticalAlignment = Alignment.CenterVertically,
diff --git a/desktop/packages/mullvad-vpn/locales/messages.pot b/desktop/packages/mullvad-vpn/locales/messages.pot
index cdb25307b6..15e32483c0 100644
--- a/desktop/packages/mullvad-vpn/locales/messages.pot
+++ b/desktop/packages/mullvad-vpn/locales/messages.pot
@@ -3111,9 +3111,6 @@ msgstr ""
msgid "File"
msgstr ""
-msgid "Filters:"
-msgstr ""
-
msgid "For the VPN to connect automatically on device startup, the app must have VPN permissions. You can grant these by clicking “Connect” in the map view and selecting “OK” if prompted. Additionally, ensure the app is installed on the internal storage by checking the storage information in the app details in system settings."
msgstr ""