summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-10-27 15:12:35 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-10-31 00:45:17 +0100
commit5c491337ba76b999137fa4c0071ed5b6e0079eb4 (patch)
tree8a39c6083bf1831d519bd5b121ab5e7ad5f50017 /android/app/src
parent6394e37f888b4e1c91cbf34e388daf80764f6ca0 (diff)
downloadmullvadvpn-5c491337ba76b999137fa4c0071ed5b6e0079eb4.tar.xz
mullvadvpn-5c491337ba76b999137fa4c0071ed5b6e0079eb4.zip
Fix bug that would reset location constraint
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt27
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt17
3 files changed, 19 insertions, 31 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
index d0f54a0cf6..5c6e765b4e 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/RelayListListener.kt
@@ -28,28 +28,13 @@ class RelayListListener(
var selectedRelayItem: RelayItem? = null
private set
- var selectedRelayLocation: GeographicLocationConstraint?
- get() {
- val settings = relaySettings as? RelaySettings.Normal
- val location = settings?.relayConstraints?.location as? Constraint.Only
-
- return location?.value?.toGeographicLocationConstraint()
- }
- set(value) {
- connection.send(Request.SetRelayLocation(value).message)
- }
-
- var selectedWireguardConstraints: WireguardConstraints?
- get() {
- val settings = relaySettings as? RelaySettings.Normal
+ fun updateSelectedRelayLocation(value: GeographicLocationConstraint) {
+ connection.send(Request.SetRelayLocation(value).message)
+ }
- return settings?.relayConstraints?.wireguardConstraints?.port?.let { port ->
- WireguardConstraints(port)
- }
- }
- set(value) {
- connection.send(Request.SetWireguardConstraints(value).message)
- }
+ fun updateSelectedWireguardConstraints(value: WireguardConstraints) {
+ connection.send(Request.SetWireguardConstraints(value).message)
+ }
var onRelayCountriesChange: ((List<RelayCountry>, RelayItem?) -> Unit)? = null
set(value) {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
index 2507e9fb19..0d8f753d8f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SelectLocationViewModel.kt
@@ -71,8 +71,10 @@ class SelectLocationViewModel(private val serviceConnectionManager: ServiceConne
@Suppress("konsist.ensure public properties use permitted names")
val enterTransitionEndAction = _enterTransitionEndAction.asSharedFlow()
- fun selectRelay(relayItem: RelayItem?) {
- serviceConnectionManager.relayListListener()?.selectedRelayLocation = relayItem?.location
+ fun selectRelay(relayItem: RelayItem) {
+ serviceConnectionManager
+ .relayListListener()
+ ?.updateSelectedRelayLocation(relayItem.location)
serviceConnectionManager.connectionProxy()?.connect()
viewModelScope.launch { _closeAction.emit(Unit) }
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
index 0827c81e99..4eb5a35141 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt
@@ -77,14 +77,14 @@ class VpnSettingsViewModel(
isLocalNetworkSharingEnabled = settings?.allowLan ?: false,
isCustomDnsEnabled = settings?.isCustomDnsEnabled() ?: false,
customDnsList = settings?.addresses()?.asStringAddressList() ?: listOf(),
- contentBlockersOptions = settings?.contentBlockersSettings()
- ?: DefaultDnsOptions(),
+ contentBlockersOptions =
+ settings?.contentBlockersSettings() ?: DefaultDnsOptions(),
isAllowLanEnabled = settings?.allowLan ?: false,
- selectedObfuscation = settings?.selectedObfuscationSettings()
- ?: SelectedObfuscation.Off,
+ selectedObfuscation =
+ settings?.selectedObfuscationSettings() ?: SelectedObfuscation.Off,
dialogState = dialogState,
- quantumResistant = settings?.quantumResistant()
- ?: QuantumResistantState.Off,
+ quantumResistant =
+ settings?.quantumResistant() ?: QuantumResistantState.Off,
selectedWireguardPort = settings?.getWireguardPort() ?: Constraint.Any(),
availablePortRanges = portRanges
)
@@ -352,8 +352,9 @@ class VpnSettingsViewModel(
fun onWireguardPortSelected(port: Constraint<Port>) {
viewModelScope.launch(dispatcher) {
- serviceConnectionManager.relayListListener()?.selectedWireguardConstraints =
- WireguardConstraints(port = port)
+ serviceConnectionManager
+ .relayListListener()
+ ?.updateSelectedWireguardConstraints(WireguardConstraints(port = port))
}
hideDialog()
}