summaryrefslogtreecommitdiffhomepage
path: root/android
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 /android
parentf821c46c737259d6410bee6988e26f405d2f039a (diff)
parente5628f5bc0f233a358ea56aa8d8502ebe1174b2a (diff)
downloadmullvadvpn-a0a6d92fad5058ebc3b7ffe2b707770d27bf7cf9.tar.xz
mullvadvpn-a0a6d92fad5058ebc3b7ffe2b707770d27bf7cf9.zip
Merge branch 'change-grid-spacings-droid-717'
Diffstat (limited to 'android')
-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
32 files changed, 68 insertions, 107 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,