diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-12 21:32:37 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-25 18:19:59 +0000 |
| commit | f4ad9fd268f1bfbab376d8675a162288e1c18449 (patch) | |
| tree | 0f686c5362222bbb2b4158ad53632c77263c8310 /android/src | |
| parent | 47559d086663ec3ff166b41ff5331e58339e68ce (diff) | |
| download | mullvadvpn-f4ad9fd268f1bfbab376d8675a162288e1c18449.tar.xz mullvadvpn-f4ad9fd268f1bfbab376d8675a162288e1c18449.zip | |
Obtain selected relay location from relay settings
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/LocationInfoCache.kt | 15 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/LocationInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/LocationInfoCache.kt index c0116e9ef7..04a99859a1 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/LocationInfoCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/LocationInfoCache.kt @@ -10,12 +10,15 @@ import kotlinx.coroutines.channels.ReceiveChannel import kotlinx.coroutines.channels.actor import kotlinx.coroutines.channels.sendBlocking import kotlinx.coroutines.withTimeout +import net.mullvad.mullvadvpn.model.Constraint import net.mullvad.mullvadvpn.model.GeoIpLocation +import net.mullvad.mullvadvpn.model.RelaySettings import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.relaylist.Relay import net.mullvad.mullvadvpn.relaylist.RelayCity import net.mullvad.mullvadvpn.relaylist.RelayCountry import net.mullvad.mullvadvpn.relaylist.RelayItem +import net.mullvad.mullvadvpn.service.endpoint.SettingsListener import net.mullvad.mullvadvpn.util.ExponentialBackoff import net.mullvad.mullvadvpn.util.Intermittent import net.mullvad.talpid.ConnectivityListener @@ -24,6 +27,7 @@ import net.mullvad.talpid.util.autoSubscribable class LocationInfoCache( val connectivityListener: ConnectivityListener, + val settingsListener: SettingsListener, val daemon: Intermittent<MullvadDaemon> ) { companion object { @@ -84,11 +88,15 @@ class LocationInfoCache( fetchRequestChannel.sendBlocking(RequestFetch.ForRealLocation) } } + + settingsListener.relaySettingsNotifier.subscribe(this, ::updateSelectedLocation) } fun onDestroy() { connectivityListener.connectivityNotifier.unsubscribe(this) + settingsListener.relaySettingsNotifier.unsubscribe(this) stateEvents = null + fetchRequestChannel.close() onNewLocation = null @@ -171,4 +179,11 @@ class LocationInfoCache( location = newLocation } + + private fun updateSelectedLocation(relaySettings: RelaySettings?) { + val settings = relaySettings as? RelaySettings.Normal + val constraint = settings?.relayConstraints?.location as? Constraint.Only + + selectedRelayLocation = constraint?.value?.location + } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt index 3bd6e479fb..cc6e3fdbb5 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt @@ -19,7 +19,7 @@ class ServiceInstance( val keyStatusListener = KeyStatusListener(daemon) val locationInfoCache = - LocationInfoCache(connectivityListener, intermittentDaemon).apply { + LocationInfoCache(connectivityListener, settingsListener, intermittentDaemon).apply { stateEvents = connectionProxy.onStateChange } |
