Skip to content

Commit 689083e

Browse files
committed
Some fixes
1 parent 3fc67bf commit 689083e

File tree

27 files changed

+61
-57
lines changed

27 files changed

+61
-57
lines changed

android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class VpnSettingsScreenTest {
107107
navigateToUdp2TcpSettings = navigateToUdp2TcpSettings,
108108
onToggleAutoStartAndConnectOnBoot = onToggleAutoStartAndConnectOnBoot,
109109
onSelectDeviceIpVersion = onSelectDeviceIpVersion,
110-
onToggleIPv6Toggle = onToggleIPv6Toggle,
110+
onToggleIpv6Toggle = onToggleIPv6Toggle,
111111
)
112112
}
113113
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt

+7-9
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,15 @@ fun DnsCell(
4343
BaseCell(
4444
headlineContent = { DnsTitle(address = address, modifier = titleModifier) },
4545
bodyView = {
46-
if (isUnreachableLocalDnsWarningVisible) {
46+
if (isUnreachableLocalDnsWarningVisible || isUnreachableIpv6DnsWarningVisible) {
4747
Icon(
4848
imageVector = Icons.Rounded.Error,
49-
contentDescription = stringResource(id = R.string.confirm_local_dns),
50-
tint = MaterialTheme.colorScheme.error,
51-
)
52-
}
53-
if (isUnreachableIpv6DnsWarningVisible) {
54-
Icon(
55-
imageVector = Icons.Rounded.Error,
56-
contentDescription = stringResource(id = R.string.confirm_ipv6_dns),
49+
contentDescription =
50+
if (isUnreachableLocalDnsWarningVisible) {
51+
stringResource(id = R.string.confirm_local_dns)
52+
} else {
53+
stringResource(id = R.string.confirm_ipv6_dns)
54+
},
5755
tint = MaterialTheme.colorScheme.error,
5856
)
5957
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt

+12-12
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ private fun PreviewVpnSettings(
142142
navigateToWireguardPortDialog = {},
143143
navigateToServerIpOverrides = {},
144144
onSelectDeviceIpVersion = {},
145-
onToggleIPv6Toggle = {},
145+
onToggleIpv6Toggle = {},
146146
)
147147
}
148148
}
@@ -272,7 +272,7 @@ fun VpnSettings(
272272
dropUnlessResumed { navigator.navigate(Udp2TcpSettingsDestination) },
273273
onToggleAutoStartAndConnectOnBoot = vm::onToggleAutoStartAndConnectOnBoot,
274274
onSelectDeviceIpVersion = vm::onDeviceIpVersionSelected,
275-
onToggleIPv6Toggle = vm::setIpV6Enabled,
275+
onToggleIpv6Toggle = vm::setIpV6Enabled,
276276
)
277277
}
278278

@@ -310,7 +310,7 @@ fun VpnSettingsScreen(
310310
navigateToUdp2TcpSettings: () -> Unit,
311311
onToggleAutoStartAndConnectOnBoot: (Boolean) -> Unit,
312312
onSelectDeviceIpVersion: (ipVersion: Constraint<IpVersion>) -> Unit,
313-
onToggleIPv6Toggle: (Boolean) -> Unit,
313+
onToggleIpv6Toggle: (Boolean) -> Unit,
314314
) {
315315
var expandContentBlockersState by rememberSaveable { mutableStateOf(false) }
316316
val biggerPadding = 54.dp
@@ -470,7 +470,7 @@ fun VpnSettingsScreen(
470470
address = item.address,
471471
isUnreachableLocalDnsWarningVisible =
472472
item.isLocal && !state.isLocalNetworkSharingEnabled,
473-
isUnreachableIpv6DnsWarningVisible = item.isIpv6 && !state.isIPv6Enabled,
473+
isUnreachableIpv6DnsWarningVisible = item.isIpv6 && !state.isIpv6Enabled,
474474
onClick = { navigateToDns(index, item.address) },
475475
modifier = Modifier.animateItem(),
476476
)
@@ -685,21 +685,21 @@ fun VpnSettingsScreen(
685685
Spacer(modifier = Modifier.height(Dimens.cellVerticalSpacing))
686686
}
687687

688-
item {
689-
MtuComposeCell(mtuValue = state.mtu, onEditMtu = { navigateToMtuDialog(state.mtu) })
690-
}
691-
item { MtuSubtitle(modifier = Modifier.testTag(LAZY_LIST_LAST_ITEM_TEST_TAG)) }
692-
693688
item {
694689
HeaderSwitchComposeCell(
695-
title = "Enable IPv6",
696-
isToggled = state.isIPv6Enabled,
690+
title = stringResource(R.string.enable_ipv6),
691+
isToggled = state.isIpv6Enabled,
697692
isEnabled = true,
698-
onCellClicked = { newValue -> onToggleIPv6Toggle(newValue) },
693+
onCellClicked = { newValue -> onToggleIpv6Toggle(newValue) },
699694
)
700695
Spacer(modifier = Modifier.height(Dimens.cellVerticalSpacing))
701696
}
702697

698+
item {
699+
MtuComposeCell(mtuValue = state.mtu, onEditMtu = { navigateToMtuDialog(state.mtu) })
700+
}
701+
item { MtuSubtitle(modifier = Modifier.testTag(LAZY_LIST_LAST_ITEM_TEST_TAG)) }
702+
703703
item { ServerIpOverrides(navigateToServerIpOverrides) }
704704
}
705705
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/VpnSettingsUiState.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ data class VpnSettingsUiState(
2626
val systemVpnSettingsAvailable: Boolean,
2727
val autoStartAndConnectOnBoot: Boolean,
2828
val deviceIpVersion: Constraint<IpVersion>,
29-
val isIPv6Enabled: Boolean,
29+
val isIpv6Enabled: Boolean,
3030
) {
3131
val isCustomWireguardPort =
3232
selectedWireguardPort is Constraint.Only &&
@@ -52,7 +52,7 @@ data class VpnSettingsUiState(
5252
systemVpnSettingsAvailable: Boolean = false,
5353
autoStartAndConnectOnBoot: Boolean = false,
5454
deviceIpVersion: Constraint<IpVersion> = Constraint.Any,
55-
isIPv6Enabled: Boolean = true,
55+
isIpv6Enabled: Boolean = true,
5656
) =
5757
VpnSettingsUiState(
5858
mtu,
@@ -70,7 +70,7 @@ data class VpnSettingsUiState(
7070
systemVpnSettingsAvailable,
7171
autoStartAndConnectOnBoot,
7272
deviceIpVersion,
73-
isIPv6Enabled,
73+
isIpv6Enabled,
7474
)
7575
}
7676
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt

+15-27
Original file line numberDiff line numberDiff line change
@@ -70,23 +70,28 @@ class DnsDialogViewModel(
7070
input,
7171
currentIndex,
7272
settings ->
73-
createViewState(
74-
settings.addresses(),
75-
currentIndex,
76-
settings.allowLan,
77-
settings.tunnelOptions.genericOptions.enableIpv6,
78-
input,
73+
DnsDialogViewState(
74+
input = input,
75+
validationError =
76+
input.validateDnsEntry(currentIndex, settings.addresses()).leftOrNull(),
77+
isLocal = input.isLocalAddress(),
78+
isIpv6 = input.isIpv6(),
79+
isAllowLanEnabled = settings.allowLan,
80+
isIpv6Enabled = settings.tunnelOptions.genericOptions.enableIpv6,
81+
index = currentIndex,
7982
)
8083
}
8184
.stateIn(
8285
viewModelScope,
8386
SharingStarted.Lazily,
84-
createViewState(
85-
customDnsList = emptyList(),
86-
currentIndex = null,
87+
DnsDialogViewState(
88+
input = _ipAddressInput.value,
89+
validationError = null,
90+
isLocal = _ipAddressInput.value.isLocalAddress(),
91+
isIpv6 = _ipAddressInput.value.isIpv6(),
8792
isAllowLanEnabled = false,
8893
isIpv6Enabled = false,
89-
input = _ipAddressInput.value,
94+
index = null,
9095
),
9196
)
9297

@@ -97,23 +102,6 @@ class DnsDialogViewModel(
97102
viewModelScope.launch { settings.emit(repository.settingsUpdates.filterNotNull().first()) }
98103
}
99104

100-
private fun createViewState(
101-
customDnsList: List<InetAddress>,
102-
currentIndex: Int?,
103-
isAllowLanEnabled: Boolean,
104-
isIpv6Enabled: Boolean,
105-
input: String,
106-
): DnsDialogViewState =
107-
DnsDialogViewState(
108-
input = input,
109-
validationError = input.validateDnsEntry(currentIndex, customDnsList).leftOrNull(),
110-
isLocal = input.isLocalAddress(),
111-
isIpv6 = input.isIpv6(),
112-
isAllowLanEnabled = isAllowLanEnabled,
113-
isIpv6Enabled = isIpv6Enabled,
114-
index = currentIndex,
115-
)
116-
117105
private fun String.validateDnsEntry(
118106
index: Int?,
119107
dnsList: List<InetAddress>,

android/lib/resource/src/main/res/values-da/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Aktivér alligevel</string>
155155
<string name="enable_custom_dns">Brug brugerdefineret DNS-server</string>
156156
<string name="enable_direct_only">Aktivér %1$s</string>
157+
<string name="enable_ipv6">Aktiver IPv6</string>
157158
<string name="enable_method">Aktiver metode</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Med metoden \"krypteret DNS-proxy\" vil appen kommunikere med vores Mullvad API via en proxy-adresse. Det gør den ved at hente en adresse fra en DNS over HTTPS-server (DoH) og derefter bruge den til at få adgang til en vores API-servere.</string>
159160
<string name="enter_value_placeholder">Indtast MTU</string>

android/lib/resource/src/main/res/values-de/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Trotzdem aktivieren</string>
155155
<string name="enable_custom_dns">Benutzerdefinierten DNS-Server verwenden</string>
156156
<string name="enable_direct_only">%1$s aktivieren</string>
157+
<string name="enable_ipv6">IPv6 aktivieren</string>
157158
<string name="enable_method">Methode aktivieren</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Mit der Methode „Verschlüsseltes-DNS-Proxy“ kommuniziert die App mit unserer Mullvad-API über eine Proxy-Adresse. Sie tut dies, indem sie eine Adresse von einem DNS-over-HTTPS-Server (DoH) abruft und dann diese verwendet, um unsere API-Server zu erreichen.</string>
159160
<string name="enter_value_placeholder">MTU eingeben</string>

android/lib/resource/src/main/res/values-es/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Habilitar de todos modos</string>
155155
<string name="enable_custom_dns">Usar servidor DNS personalizado</string>
156156
<string name="enable_direct_only">Habilitar %1$s</string>
157+
<string name="enable_ipv6">Habilitar IPv6</string>
157158
<string name="enable_method">Habilitar método</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Con el método «Proxy DNS cifrado», la aplicación se comunicará con nuestra API de Mullvad a través de una dirección proxy. Para ello, recupera una dirección de un servidor DNS sobre HTTPS (DoH) y luego la utiliza para contactar con nuestros servidores API.</string>
159160
<string name="enter_value_placeholder">Introducir MTU</string>

android/lib/resource/src/main/res/values-fi/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Ota silti käyttöön</string>
155155
<string name="enable_custom_dns">Käytä mukautettua DNS-palvelinta</string>
156156
<string name="enable_direct_only">Ota %1$s käyttöön</string>
157+
<string name="enable_ipv6">Salli IPv6</string>
157158
<string name="enable_method">Ota menetelmä käyttöön</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Sovellus kommunikoi Mullvad API:n kanssa välityspalvelinosoitteen kautta \"Salattu DNS-välityspalvelin\" -menetelmällä, joka toimii niin, että sovellus hakee osoitteen DNS over HTTPS (DoH) -palvelimelta ja käyttää sitä API-palvelimillemme pääsemiseen.</string>
159160
<string name="enter_value_placeholder">Syötä MTU</string>

android/lib/resource/src/main/res/values-fr/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Activer quand même</string>
155155
<string name="enable_custom_dns">Utiliser un serveur DNS personnalisé</string>
156156
<string name="enable_direct_only">Activer %1$s</string>
157+
<string name="enable_ipv6">Activer IPv6</string>
157158
<string name="enable_method">Activer la méthode</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Avec la méthode « proxy DNS chiffré », l\'application communiquera avec notre API Mullvad par le biais d\'une adresse proxy. Pour ce faire, elle récupère une adresse auprès d\'un serveur DNS over HTTPS (DoH) et l\'utilise pour atteindre nos serveurs API.</string>
159160
<string name="enter_value_placeholder">Saisir le MTU</string>

android/lib/resource/src/main/res/values-it/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Abilita comunque</string>
155155
<string name="enable_custom_dns">Usa un server DNS personalizzato</string>
156156
<string name="enable_direct_only">Abilita %1$s</string>
157+
<string name="enable_ipv6">Abilita IPv6</string>
157158
<string name="enable_method">Abilita metodo</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Con il metodo \"Proxy DNS crittografato\", l\'app comunicherà con la nostra API Mullvad tramite un indirizzo proxy. Lo fa recuperando un indirizzo da un server DNS over HTTPS (DoH) e quindi utilizzandolo per raggiungere i nostri server API.</string>
159160
<string name="enter_value_placeholder">Inserisci MTU</string>

android/lib/resource/src/main/res/values-ja/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">それでも有効にする</string>
155155
<string name="enable_custom_dns">カスタムDNSサーバーを使う</string>
156156
<string name="enable_direct_only">%1$sを有効にする</string>
157+
<string name="enable_ipv6">IPv6を有効にする</string>
157158
<string name="enable_method">方法を有効化する</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">[暗号化DNSプロキシ] 方式を使用すると、アプリはプロキシアドレスを通じてMullvad APIと通信します。これはDNS over HTTPS (DoH) サーバーからアドレスを取得し、APIサーバーへのアクセスに利用することで行われます。</string>
159160
<string name="enter_value_placeholder">MTU を入力</string>

android/lib/resource/src/main/res/values-ko/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">그래도 사용</string>
155155
<string name="enable_custom_dns">사용자 지정 DNS 서버 사용</string>
156156
<string name="enable_direct_only">%1$s 활성화</string>
157+
<string name="enable_ipv6">IPv6 사용</string>
157158
<string name="enable_method">방법 활성화</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">앱은 \"암호화된 DNS 프록시\" 방식을 사용하여 프록시 주소를 통해 Mullvad API와 통신합니다. 이는 DoH(DNS over HTTPS) 서버에서 주소를 검색한 다음, 그 주소를 사용해 당사 API 서버에 도달하는 방식으로 이루어집니다.</string>
159160
<string name="enter_value_placeholder">MTU 입력</string>

android/lib/resource/src/main/res/values-my/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">မည်သို့ပင်ဖြစ်စေ ဖွင့်ရန်</string>
155155
<string name="enable_custom_dns">စိတ်ကြိုက် DNS ဆာဗာကို သုံးရန်</string>
156156
<string name="enable_direct_only">%1$s ကို ဖွင့်ရန်</string>
157+
<string name="enable_ipv6">IPv6 ကို ဖွင့်ရန်</string>
157158
<string name="enable_method">နည်းလမ်းကို ဖွင့်ရန်</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">ထိုအက်ပ်သည် “ကုဒ်ဝှက်ထားသော DNS ပရောက်စီ” နည်းလမ်းအားဖြင့် ကျွန်ုပ်တို့၏ Mullvad API ထံသို့ ပရောက်စီလိပ်စာမှတစ်ဆင့် ဆက်သွယ်ပေးမည်ဖြစ်သည်။ HTTPS (DoH) ဆာဗာရှိ DNS မှ လိပ်စာတစ်ခုကို ပြန်လည်ရယူခြင်းအားဖြင့် ထိုသို့လုပ်ဆောင်ပြီးနောက် ကျွန်ုပ်တို့၏ API ဆာဗာများသို့ရောက်ရှိရန် ၎င်းကို အသုံးပြုသည်။</string>
159160
<string name="enter_value_placeholder">MTU ကို ရိုက်ထည့်ရန်</string>

android/lib/resource/src/main/res/values-nb/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Aktiver uansett</string>
155155
<string name="enable_custom_dns">Bruk egendefinert DNS-server</string>
156156
<string name="enable_direct_only">Aktiver %1$s</string>
157+
<string name="enable_ipv6">Aktiver IPv6</string>
157158
<string name="enable_method">Aktiver metoden</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Med metoden «Kryptert DNS-proxy» vil appen kommunisere med Mullvad API gjennom en proxy-adresse. Dette gjøres ved å hente en adresse fra en DNS over HTTPS-server (DoH) og deretter bruke den til å nå API-serverne våre.</string>
159160
<string name="enter_value_placeholder">Angi MTU</string>

android/lib/resource/src/main/res/values-nl/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Toch inschakelen</string>
155155
<string name="enable_custom_dns">Aangepaste DNS-server gebruiken</string>
156156
<string name="enable_direct_only">%1$s inschakelen</string>
157+
<string name="enable_ipv6">IPv6 inschakelen</string>
157158
<string name="enable_method">Methode inschakelen</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Met de methode \"Versleutelde DNS-proxy\" communiceert de app met onze Mullvad-API via een proxyadres. De app doet dit door een adres op te halen van een DoH-server (DNS over HTTPS) en dat te gebruiken om onze API-servers te bereiken.</string>
159160
<string name="enter_value_placeholder">Voer MTU in</string>

android/lib/resource/src/main/res/values-pl/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Mimo to włącz</string>
155155
<string name="enable_custom_dns">Użyj niestandardowego serwera DNS</string>
156156
<string name="enable_direct_only">Włącz %1$s</string>
157+
<string name="enable_ipv6">Włącz IPv6</string>
157158
<string name="enable_method">Włącz metodę</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Dzięki metodzie „szyfrowany serwer proxy DNS” aplikacja będzie komunikować się z naszym interfejsem API Mullvad za pośrednictwem adresu serwera proxy. Odbywa się to poprzez pobranie adresu z serwera DNS over HTTPS (DoH), a następnie użycie go do połączenia z naszymi serwerami interfejsu API.</string>
159160
<string name="enter_value_placeholder">Wprowadź MTU</string>

android/lib/resource/src/main/res/values-pt/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Ativar mesmo assim</string>
155155
<string name="enable_custom_dns">Usar servidor DNS personalizado</string>
156156
<string name="enable_direct_only">Ativar %1$s</string>
157+
<string name="enable_ipv6">Ativar IPv6</string>
157158
<string name="enable_method">Ativar método</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Com o método \"Proxy DNS encriptado\", a aplicação irá comunicar com a nossa API Mullvad através de um endereço proxy. Para tal, obtém um endereço de um servidor DNS sobre HTTPS (DoH) e utiliza-o para aceder aos nossos servidores de API.</string>
159160
<string name="enter_value_placeholder">Introduzir MTU</string>

android/lib/resource/src/main/res/values-ru/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Всё равно включить</string>
155155
<string name="enable_custom_dns">Пользовательский DNS-сервер</string>
156156
<string name="enable_direct_only">Включить параметр «%1$s»</string>
157+
<string name="enable_ipv6">Включить IPv6</string>
157158
<string name="enable_method">Включить метод</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">При использовании метода «Прокси через зашифрованный DNS» приложение будет взаимодействовать с API Mullvad через прокси-адрес. Полученный от сервера «DNS по HTTPS» (DoH) адрес будет использоваться для доступа к нашим серверам API.</string>
159160
<string name="enter_value_placeholder">Введите MTU</string>

android/lib/resource/src/main/res/values-sv/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
<string name="enable_anyway">Aktivera ändå</string>
155155
<string name="enable_custom_dns">Använd anpassad DNS-server</string>
156156
<string name="enable_direct_only">Aktivera %1$s</string>
157+
<string name="enable_ipv6">Aktivera IPv6</string>
157158
<string name="enable_method">Aktivera metod</string>
158159
<string name="encrypted_dns_proxy_info_message_part1">Med metoden \"Krypterad DNS-proxy\" kommunicerar appen med vår Mullvad API via en proxyadress. Den gör det genom att hämta en adress från en DNS over HTTPS-server (DoH) och sedan använda den för att nå våra API-servrar.</string>
159160
<string name="enter_value_placeholder">Ange MTU</string>

0 commit comments

Comments
 (0)