@@ -3,12 +3,12 @@ package net.mullvad.mullvadvpn.viewmodel
3
3
import androidx.lifecycle.ViewModel
4
4
import androidx.lifecycle.viewModelScope
5
5
import co.touchlab.kermit.Logger
6
+ import java.net.Inet6Address
6
7
import java.net.InetAddress
7
8
import java.net.UnknownHostException
8
9
import kotlinx.coroutines.CoroutineDispatcher
9
10
import kotlinx.coroutines.Dispatchers
10
11
import kotlinx.coroutines.channels.Channel
11
- import kotlinx.coroutines.delay
12
12
import kotlinx.coroutines.flow.MutableStateFlow
13
13
import kotlinx.coroutines.flow.SharingStarted
14
14
import kotlinx.coroutines.flow.combine
@@ -29,8 +29,6 @@ import net.mullvad.mullvadvpn.lib.model.ObfuscationMode
29
29
import net.mullvad.mullvadvpn.lib.model.Port
30
30
import net.mullvad.mullvadvpn.lib.model.QuantumResistantState
31
31
import net.mullvad.mullvadvpn.lib.model.Settings
32
- import net.mullvad.mullvadvpn.lib.model.TunnelPreferencesRepository
33
- import net.mullvad.mullvadvpn.lib.shared.ConnectionProxy
34
32
import net.mullvad.mullvadvpn.repository.AutoStartAndConnectOnBootRepository
35
33
import net.mullvad.mullvadvpn.repository.RelayListRepository
36
34
import net.mullvad.mullvadvpn.repository.SettingsRepository
@@ -54,8 +52,6 @@ class VpnSettingsViewModel(
54
52
private val systemVpnSettingsUseCase : SystemVpnSettingsAvailableUseCase ,
55
53
private val autoStartAndConnectOnBootRepository : AutoStartAndConnectOnBootRepository ,
56
54
private val wireguardConstraintsRepository : WireguardConstraintsRepository ,
57
- private val tunnelPreferencesRepository : TunnelPreferencesRepository ,
58
- private val connectionProxy : ConnectionProxy ,
59
55
private val dispatcher : CoroutineDispatcher = Dispatchers .IO ,
60
56
) : ViewModel() {
61
57
@@ -70,8 +66,7 @@ class VpnSettingsViewModel(
70
66
relayListRepository.portRanges,
71
67
customPort,
72
68
autoStartAndConnectOnBootRepository.autoStartAndConnectOnBoot,
73
- tunnelPreferencesRepository.preferencesFlow,
74
- ) { settings, portRanges, customWgPort, autoStartAndConnectOnBoot, preferences ->
69
+ ) { settings, portRanges, customWgPort, autoStartAndConnectOnBoot ->
75
70
VpnSettingsViewModelState (
76
71
mtuValue = settings?.tunnelOptions?.wireguard?.mtu,
77
72
isLocalNetworkSharingEnabled = settings?.allowLan == true ,
@@ -92,7 +87,6 @@ class VpnSettingsViewModel(
92
87
autoStartAndConnectOnBoot = autoStartAndConnectOnBoot,
93
88
deviceIpVersion = settings?.getDeviceIpVersion() ? : Constraint .Any ,
94
89
ipv6Enabled = settings?.tunnelOptions?.genericOptions?.enableIpv6 == true ,
95
- routeIpv6 = preferences.routeIpV6,
96
90
)
97
91
}
98
92
.stateIn(
@@ -269,15 +263,6 @@ class VpnSettingsViewModel(
269
263
}
270
264
}
271
265
272
- fun onToggleRouteIpv6Traffic (enable : Boolean ) {
273
- viewModelScope.launch(dispatcher) {
274
- tunnelPreferencesRepository.setRouteIpv6(enable)
275
- connectionProxy.disconnect()
276
- delay(1000L )
277
- connectionProxy.connect()
278
- }
279
- }
280
-
281
266
private fun updateDefaultDnsOptionsViaRepository (contentBlockersOption : DefaultDnsOptions ) =
282
267
viewModelScope.launch(dispatcher) {
283
268
repository
@@ -300,7 +285,11 @@ class VpnSettingsViewModel(
300
285
301
286
private fun List<InetAddress>.asStringAddressList (): List <CustomDnsItem > {
302
287
return map {
303
- CustomDnsItem (address = it.hostAddress ? : EMPTY_STRING , isLocal = it.isLocalAddress())
288
+ CustomDnsItem (
289
+ address = it.hostAddress ? : EMPTY_STRING ,
290
+ isLocal = it.isLocalAddress(),
291
+ isIpv6 = it is Inet6Address ,
292
+ )
304
293
}
305
294
}
306
295
0 commit comments