diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-09-01 10:42:49 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-09-03 15:52:43 +0200 |
| commit | e266d72875224a0522d50e55f0555a38deb45ff3 (patch) | |
| tree | d5d07d35aab1c90f094fba9d77b935ce23071b8b /android/lib | |
| parent | f9693d2fe31c0c50027f69f5bd930d30dfa5c764 (diff) | |
| download | mullvadvpn-e266d72875224a0522d50e55f0555a38deb45ff3.tar.xz mullvadvpn-e266d72875224a0522d50e55f0555a38deb45ff3.zip | |
Add UI support for QUIC setting
Diffstat (limited to 'android/lib')
30 files changed, 71 insertions, 48 deletions
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt index 113a5fc847..2424ff00a7 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt @@ -92,6 +92,7 @@ internal fun ObfuscationMode.fromDomain(): ManagementInterface.ObfuscationSettings.SelectedObfuscation.UDP2TCP ObfuscationMode.Shadowsocks -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS + ObfuscationMode.Quic -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.QUIC ObfuscationMode.Auto -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.AUTO ObfuscationMode.Off -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.OFF } diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt index 140cf5aafb..9b4dd07056 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt @@ -59,6 +59,7 @@ import net.mullvad.mullvadvpn.lib.model.PortRange import net.mullvad.mullvadvpn.lib.model.ProviderId import net.mullvad.mullvadvpn.lib.model.Providers import net.mullvad.mullvadvpn.lib.model.QuantumResistantState +import net.mullvad.mullvadvpn.lib.model.Quic import net.mullvad.mullvadvpn.lib.model.Recent import net.mullvad.mullvadvpn.lib.model.Recents import net.mullvad.mullvadvpn.lib.model.RedeemVoucherSuccess @@ -207,6 +208,8 @@ internal fun ManagementInterface.ObfuscationEndpoint.toDomain(): ObfuscationEndp obfuscationType = obfuscationType.toDomain(), ) +private fun String.toInetAddress(): InetAddress = InetAddress.getByName(this) + private fun String.toInetSocketAddress(): InetSocketAddress { val indexOfSeparator = indexOfLast { it == ':' } val ipPart = substring(0, indexOfSeparator).filter { it !in listOf('[', ']') } @@ -219,8 +222,7 @@ internal fun ManagementInterface.ObfuscationEndpoint.ObfuscationType.toDomain(): ManagementInterface.ObfuscationEndpoint.ObfuscationType.UDP2TCP -> ObfuscationType.Udp2Tcp ManagementInterface.ObfuscationEndpoint.ObfuscationType.SHADOWSOCKS -> ObfuscationType.Shadowsocks - ManagementInterface.ObfuscationEndpoint.ObfuscationType.QUIC -> - throw IllegalArgumentException("Unsupported obfuscation type") + ManagementInterface.ObfuscationEndpoint.ObfuscationType.QUIC -> ObfuscationType.Quic ManagementInterface.ObfuscationEndpoint.ObfuscationType.UNRECOGNIZED -> throw IllegalArgumentException("Unrecognized obfuscation type") } @@ -426,8 +428,7 @@ internal fun ManagementInterface.ObfuscationSettings.SelectedObfuscation.toDomai ObfuscationMode.Udp2Tcp ManagementInterface.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS -> ObfuscationMode.Shadowsocks - ManagementInterface.ObfuscationSettings.SelectedObfuscation.QUIC -> - throw IllegalArgumentException("Unsupported obfuscation type") + ManagementInterface.ObfuscationSettings.SelectedObfuscation.QUIC -> ObfuscationMode.Quic ManagementInterface.ObfuscationSettings.SelectedObfuscation.UNRECOGNIZED -> throw IllegalArgumentException("Unrecognized selected obfuscation") } @@ -592,9 +593,17 @@ internal fun ManagementInterface.Relay.toDomain( provider = ProviderId(provider), ownership = if (owned) Ownership.MullvadOwned else Ownership.Rented, daita = endpointData.wireguard.daita, - quic = endpointData.wireguard.hasQuic(), + quic = + if (endpointData.wireguard.hasQuic()) { + endpointData.wireguard.quic.toDomain() + } else { + null + }, ) +private fun ManagementInterface.Relay.RelayData.Wireguard.Quic.toDomain(): Quic = + Quic(inAddresses = addrInList.map { it.toInetAddress() }) + private fun Instant.atDefaultZone() = atZone(ZoneId.systemDefault()) internal fun ManagementInterface.Device.toDomain(): Device = @@ -695,6 +704,7 @@ internal fun ManagementInterface.FeatureIndicators.toDomain(): List<FeatureIndic internal fun ManagementInterface.TunnelOptions.GenericOptions.toDomain(): GenericOptions = GenericOptions(enableIpv6 = enableIpv6) +@Suppress("ComplexMethod") internal fun ManagementInterface.FeatureIndicator.toDomain() = when (this) { ManagementInterface.FeatureIndicator.QUANTUM_RESISTANCE -> @@ -712,7 +722,7 @@ internal fun ManagementInterface.FeatureIndicator.toDomain() = ManagementInterface.FeatureIndicator.SHADOWSOCKS -> FeatureIndicator.SHADOWSOCKS ManagementInterface.FeatureIndicator.MULTIHOP -> FeatureIndicator.MULTIHOP ManagementInterface.FeatureIndicator.DAITA_MULTIHOP -> FeatureIndicator.DAITA_MULTIHOP - ManagementInterface.FeatureIndicator.QUIC, + ManagementInterface.FeatureIndicator.QUIC -> FeatureIndicator.QUIC ManagementInterface.FeatureIndicator.LOCKDOWN_MODE, ManagementInterface.FeatureIndicator.BRIDGE_MODE, ManagementInterface.FeatureIndicator.CUSTOM_MSS_FIX, diff --git a/android/lib/daemon-grpc/src/test/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/RelayNameComparatorTest.kt b/android/lib/daemon-grpc/src/test/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/RelayNameComparatorTest.kt index e45c8087fd..310b2ab1fd 100644 --- a/android/lib/daemon-grpc/src/test/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/RelayNameComparatorTest.kt +++ b/android/lib/daemon-grpc/src/test/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/RelayNameComparatorTest.kt @@ -26,7 +26,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay10 = RelayItem.Location.Relay( @@ -35,7 +35,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relay9 assertOrderBothDirection relay10 @@ -50,7 +50,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay9b = RelayItem.Location.Relay( @@ -59,7 +59,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) assertTrue(RelayNameComparator.compare(relay9a, relay9b) == 0) @@ -75,7 +75,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay1 = RelayItem.Location.Relay( @@ -84,7 +84,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay3 = RelayItem.Location.Relay( @@ -93,7 +93,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay100 = RelayItem.Location.Relay( @@ -102,7 +102,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relay001 assertOrderBothDirection relay1 @@ -120,7 +120,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay9b = RelayItem.Location.Relay( @@ -129,7 +129,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) assertTrue(RelayNameComparator.compare(relay9a, relay9b) == 0) @@ -145,7 +145,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay005 = RelayItem.Location.Relay( @@ -154,7 +154,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relay001 assertOrderBothDirection relay005 @@ -169,7 +169,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relayAr8 = RelayItem.Location.Relay( @@ -178,7 +178,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relaySe5 = RelayItem.Location.Relay( @@ -187,7 +187,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relaySe10 = RelayItem.Location.Relay( @@ -196,7 +196,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relayAr2 assertOrderBothDirection relayAr8 @@ -213,7 +213,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay2w = RelayItem.Location.Relay( @@ -222,7 +222,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relay2c assertOrderBothDirection relay2w @@ -237,7 +237,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) val relay22b = RelayItem.Location.Relay( @@ -246,7 +246,7 @@ class RelayNameComparatorTest { provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = false, - quic = false, + quic = null, ) relay22a assertOrderBothDirection relay22b diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/FeatureIndicator.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/FeatureIndicator.kt index 0213c06cef..6d7951749b 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/FeatureIndicator.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/FeatureIndicator.kt @@ -9,6 +9,7 @@ enum class FeatureIndicator { SPLIT_TUNNELING, UDP_2_TCP, SHADOWSOCKS, + QUIC, LAN_SHARING, DNS_CONTENT_BLOCKERS, CUSTOM_DNS, diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationMode.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationMode.kt index 7e4101e973..8926ded829 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationMode.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationMode.kt @@ -5,4 +5,5 @@ enum class ObfuscationMode { Off, Udp2Tcp, Shadowsocks, + Quic, } diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationType.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationType.kt index 80c2f70e13..5eb0ad5548 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationType.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ObfuscationType.kt @@ -3,4 +3,5 @@ package net.mullvad.mullvadvpn.lib.model enum class ObfuscationType { Udp2Tcp, Shadowsocks, + Quic, } diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/Quic.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/Quic.kt new file mode 100644 index 0000000000..01ebd96d3e --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/Quic.kt @@ -0,0 +1,8 @@ +package net.mullvad.mullvadvpn.lib.model + +import java.net.InetAddress + +data class Quic(val inAddresses: List<InetAddress>) { + val supportsIpv4 = inAddresses.any { it is java.net.Inet4Address } + val supportsIpv6 = inAddresses.any { it is java.net.Inet6Address } +} diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt index b1df67fea6..197e8e95ce 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/RelayItem.kt @@ -85,7 +85,7 @@ sealed interface RelayItem { val ownership: Ownership, override val active: Boolean, val daita: Boolean, - val quic: Boolean, + val quic: Quic?, ) : Location { override val name: String = id.code override val hasChildren: Boolean = false 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 be26ab6e10..a395a1917d 100644 --- a/android/lib/resource/src/main/res/values-da/strings.xml +++ b/android/lib/resource/src/main/res/values-da/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Brugerdefineret DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s mere ...</string> + <string name="feature_obfuscation">Tilsløring</string> <string name="feature_quantum_resistant">Kvantemodstand</string> - <string name="feature_udp_2_tcp">Tilsløring</string> <string name="filter">Filter</string> <string name="filters">Filtre:</string> <string name="foreground_notification_channel_description">Viser den aktuelle VPN-tunnelstatus</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 12e43b5d9f..9070ee0abe 100644 --- a/android/lib/resource/src/main/res/values-de/strings.xml +++ b/android/lib/resource/src/main/res/values-de/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Eigenes DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s weitere …</string> + <string name="feature_obfuscation">Verschleierung</string> <string name="feature_quantum_resistant">Quantenresistenz</string> - <string name="feature_udp_2_tcp">Verschleierung</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> 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 b76ec33c1d..0a35370514 100644 --- a/android/lib/resource/src/main/res/values-es/strings.xml +++ b/android/lib/resource/src/main/res/values-es/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">DNS personalizado</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s más...</string> + <string name="feature_obfuscation">Ofuscación</string> <string name="feature_quantum_resistant">Resistencia cuántica</string> - <string name="feature_udp_2_tcp">Ofuscación</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> 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 aca2052934..b90c8f021e 100644 --- a/android/lib/resource/src/main/res/values-fi/strings.xml +++ b/android/lib/resource/src/main/res/values-fi/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Mukautettu DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s lisää...</string> + <string name="feature_obfuscation">Hämäysteknologia</string> <string name="feature_quantum_resistant">Kvanttihyökkäysten esto</string> - <string name="feature_udp_2_tcp">Hämäysteknologia</string> <string name="filter">Suodatin</string> <string name="filters">Suodattimet:</string> <string name="foreground_notification_channel_description">Näyttää VPN-tunnelin nykyisen tilan</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 e48f6b8bde..d03e810d5a 100644 --- a/android/lib/resource/src/main/res/values-fr/strings.xml +++ b/android/lib/resource/src/main/res/values-fr/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">DNS personnalisé</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s de plus…</string> + <string name="feature_obfuscation">Dissimulation</string> <string name="feature_quantum_resistant">Résistance quantique</string> - <string name="feature_udp_2_tcp">Dissimulation</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> 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 3c42bff12a..323129f829 100644 --- a/android/lib/resource/src/main/res/values-it/strings.xml +++ b/android/lib/resource/src/main/res/values-it/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">DNS personalizzato</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">Altri %1$s...</string> + <string name="feature_obfuscation">Offuscamento</string> <string name="feature_quantum_resistant">Resistenza ad attacchi quantistici</string> - <string name="feature_udp_2_tcp">Offuscamento</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> 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 0019bd8cf6..782968ccd7 100644 --- a/android/lib/resource/src/main/res/values-ja/strings.xml +++ b/android/lib/resource/src/main/res/values-ja/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">カスタムDNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">その他%1$s件…</string> + <string name="feature_obfuscation">難読化</string> <string name="feature_quantum_resistant">耐量子</string> - <string name="feature_udp_2_tcp">難読化</string> <string name="filter">絞り込み</string> <string name="filters">絞り込み:</string> <string name="foreground_notification_channel_description">現在のVPNトンネルのステータスを表示します</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 4d5e18e0cf..f39d896349 100644 --- a/android/lib/resource/src/main/res/values-ko/strings.xml +++ b/android/lib/resource/src/main/res/values-ko/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">사용자 지정 DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s개 더 보기...</string> + <string name="feature_obfuscation">난독 처리</string> <string name="feature_quantum_resistant">양자 저항</string> - <string name="feature_udp_2_tcp">난독 처리</string> <string name="filter">필터</string> <string name="filters">필터:</string> <string name="foreground_notification_channel_description">현재 VPN 터널 상태 표시</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 98b9982cc1..b8fe2478e8 100644 --- a/android/lib/resource/src/main/res/values-my/strings.xml +++ b/android/lib/resource/src/main/res/values-my/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">စိတ်ကြိုက် DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">နောက်ထပ် %1$s ...</string> + <string name="feature_obfuscation">Obfuscation</string> <string name="feature_quantum_resistant">Quantum ခုခံမှု</string> - <string name="feature_udp_2_tcp">Obfuscation</string> <string name="filter">စစ်ထုတ်မှု</string> <string name="filters">စစ်ထုတ်မှုများ-</string> <string name="foreground_notification_channel_description">လက်ရှိ VPN Tunnel အခြေအနေကို ပြသပေးပါသည်</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 c0d6622923..ea93ba5503 100644 --- a/android/lib/resource/src/main/res/values-nb/strings.xml +++ b/android/lib/resource/src/main/res/values-nb/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Tilpasset DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s til …</string> + <string name="feature_obfuscation">Tilsløring</string> <string name="feature_quantum_resistant">Kvantemotstand</string> - <string name="feature_udp_2_tcp">Tilsløring</string> <string name="filter">Filter</string> <string name="filters">Filtre:</string> <string name="foreground_notification_channel_description">Viser gjeldende VPN-tunnelstatus</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 e1d1619d8e..77d03bc2ea 100644 --- a/android/lib/resource/src/main/res/values-nl/strings.xml +++ b/android/lib/resource/src/main/res/values-nl/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Aangepaste DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">Nog %1$s...</string> + <string name="feature_obfuscation">Obfuscatie</string> <string name="feature_quantum_resistant">Kwantumbestendigheid</string> - <string name="feature_udp_2_tcp">Obfuscatie</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> 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 e9f255c4e2..cd48028048 100644 --- a/android/lib/resource/src/main/res/values-pl/strings.xml +++ b/android/lib/resource/src/main/res/values-pl/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Niestandardowy serwer DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">Jeszcze %1$s...</string> + <string name="feature_obfuscation">Zaciemnianie</string> <string name="feature_quantum_resistant">Odporność na ataki z użyciem komputerów kwantowych</string> - <string name="feature_udp_2_tcp">Zaciemnianie</string> <string name="filter">Filtruj</string> <string name="filters">Filtry:</string> <string name="foreground_notification_channel_description">Pokazuje bieżący status tunelu VPN</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 ee85151bc8..f5f6e733a4 100644 --- a/android/lib/resource/src/main/res/values-pt/strings.xml +++ b/android/lib/resource/src/main/res/values-pt/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">DNS personalizado</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">Mais %1$s...</string> + <string name="feature_obfuscation">Ofuscação</string> <string name="feature_quantum_resistant">Resistência quântica</string> - <string name="feature_udp_2_tcp">Ofuscação</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> 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 ce118dc517..2a0d879d57 100644 --- a/android/lib/resource/src/main/res/values-ru/strings.xml +++ b/android/lib/resource/src/main/res/values-ru/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Пользовательский DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">Еще %1$s...</string> + <string name="feature_obfuscation">Обфускация</string> <string name="feature_quantum_resistant">Квантовая устойчивость</string> - <string name="feature_udp_2_tcp">Обфускация</string> <string name="filter">Фильтр</string> <string name="filters">Фильтры:</string> <string name="foreground_notification_channel_description">Показывает текущее состояние VPN-туннеля</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 8656246738..265d7b6716 100644 --- a/android/lib/resource/src/main/res/values-sv/strings.xml +++ b/android/lib/resource/src/main/res/values-sv/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Anpassad DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s till ...</string> + <string name="feature_obfuscation">Obfuskering</string> <string name="feature_quantum_resistant">Kvantresistens</string> - <string name="feature_udp_2_tcp">Obfuskering</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> 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 ec273c5e66..13f27815d3 100644 --- a/android/lib/resource/src/main/res/values-th/strings.xml +++ b/android/lib/resource/src/main/res/values-th/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">DNS แบบกำหนดเอง</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">อีก %1$s...</string> + <string name="feature_obfuscation">การทำให้ข้อมูลยุ่งเหยิง</string> <string name="feature_quantum_resistant">การต่อต้านควอนตัม</string> - <string name="feature_udp_2_tcp">การทำให้ข้อมูลยุ่งเหยิง</string> <string name="filter">ตัวกรอง</string> <string name="filters">ตัวกรอง:</string> <string name="foreground_notification_channel_description">แสดงสถานะอุโมงค์ VPN ในปัจจุบัน</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 6a802fe7dc..bf1296c709 100644 --- a/android/lib/resource/src/main/res/values-tr/strings.xml +++ b/android/lib/resource/src/main/res/values-tr/strings.xml @@ -191,8 +191,8 @@ <string name="feature_custom_dns">Özel DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">%1$s tane daha...</string> + <string name="feature_obfuscation">Gizleme</string> <string name="feature_quantum_resistant">Kuantum direnci</string> - <string name="feature_udp_2_tcp">Gizleme</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> 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 fac8961cee..d2ed8c3aff 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 @@ -191,8 +191,8 @@ <string name="feature_custom_dns">自定义 DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">其他 %1$s 个…</string> + <string name="feature_obfuscation">混淆</string> <string name="feature_quantum_resistant">量子阻力</string> - <string name="feature_udp_2_tcp">混淆</string> <string name="filter">筛选</string> <string name="filters">筛选器:</string> <string name="foreground_notification_channel_description">显示当前的 VPN 隧道状态</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 d53584ca36..37acbc0a3f 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 @@ -191,8 +191,8 @@ <string name="feature_custom_dns">自訂 DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="feature_indicators_show_more">其他 %1$s 個…</string> + <string name="feature_obfuscation">混淆</string> <string name="feature_quantum_resistant">抗量子</string> - <string name="feature_udp_2_tcp">混淆</string> <string name="filter">篩選</string> <string name="filters">篩選器:</string> <string name="foreground_notification_channel_description">顯示目前的 VPN 通道狀態</string> diff --git a/android/lib/resource/src/main/res/values/strings.xml b/android/lib/resource/src/main/res/values/strings.xml index 44b41aa99a..a6029aa1f2 100644 --- a/android/lib/resource/src/main/res/values/strings.xml +++ b/android/lib/resource/src/main/res/values/strings.xml @@ -351,7 +351,7 @@ <string name="connect_panel_active_features">Active features</string> <string name="connect_panel_connection_details">Connection details</string> <string name="feature_quantum_resistant">Quantum resistance</string> - <string name="feature_udp_2_tcp">Obfuscation</string> + <string name="feature_obfuscation">Obfuscation</string> <string name="feature_custom_dns">Custom DNS</string> <string name="feature_custom_mtu">MTU</string> <string name="dns_content_blockers">DNS content blockers</string> diff --git a/android/lib/resource/src/main/res/values/strings_non_translatable.xml b/android/lib/resource/src/main/res/values/strings_non_translatable.xml index 837740aa47..3f2c8b5c29 100644 --- a/android/lib/resource/src/main/res/values/strings_non_translatable.xml +++ b/android/lib/resource/src/main/res/values/strings_non_translatable.xml @@ -11,6 +11,7 @@ <string name="wireguard" translatable="false">WireGuard</string> <string name="socks5_remote">SOCKS5</string> <string name="shadowsocks">Shadowsocks</string> + <string name="quic">QUIC</string> <string name="local_network_sharing_ip_ranges"> <![CDATA[<ul><li>10.0.0.0/8</li><li>172.16.0.0/12</li><li>192.168.0.0/16</li><li>169.254.0.0/16</li><li>fe80::/10</li><li>fc00::/7</li></ul>]]> </string> diff --git a/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/relaylist/RelayItemPreviewData.kt b/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/relaylist/RelayItemPreviewData.kt index 724c567595..2e4e228439 100644 --- a/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/relaylist/RelayItemPreviewData.kt +++ b/android/lib/ui/component/src/main/kotlin/net/mullvad/mullvadvpn/lib/ui/component/relaylist/RelayItemPreviewData.kt @@ -51,7 +51,7 @@ private fun generateRelayItemRelay( provider = ProviderId("Provider"), ownership = Ownership.MullvadOwned, daita = daita, - quic = false, + quic = null, ) private fun String.generateCountryCode() = |
