diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt | 12 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt | 4 |
2 files changed, 6 insertions, 10 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt index 2ccde2594b..7d04bcc2c7 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt @@ -1,6 +1,5 @@ package net.mullvad.mullvadvpn.dataproxy -import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job @@ -22,19 +21,18 @@ const val MAX_RETRIES: Int = 17 // ceil(log2(MAX_DELAY / DELAY_SCALE) + 1) class LocationInfoCache( val daemon: MullvadDaemon, - val connectivityListener: Deferred<ConnectivityListener>, + val connectivityListener: ConnectivityListener, val relayListListener: RelayListListener ) { private var lastKnownRealLocation: GeoIpLocation? = null private var activeFetch: Job? = null - private val connectivityListenerId = GlobalScope.async(Dispatchers.Default) { - connectivityListener.await().connectivityNotifier.subscribe { isConnected -> + private val connectivityListenerId = + connectivityListener.connectivityNotifier.subscribe { isConnected -> if (isConnected) { fetchLocation() } } - } var onNewLocation: ((GeoIpLocation?) -> Unit)? = null set(value) { @@ -149,10 +147,10 @@ class LocationInfoCache( delay(duration) } - private suspend fun shouldRetryFetch(): Boolean { + private fun shouldRetryFetch(): Boolean { val state = this.state - return connectivityListener.await().isConnected && + return connectivityListener.isConnected && (state is TunnelState.Disconnected || state is TunnelState.Connected) } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt index 5fc866b2d8..8fcee52347 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt @@ -25,12 +25,11 @@ class ServiceConnection(private val service: ServiceInstance, val mainActivity: val settingsListener = SettingsListener(asyncDaemon) val accountCache = AccountCache(settingsListener, daemon) var relayListListener = RelayListListener(asyncDaemon, settingsListener) - val locationInfoCache = LocationInfoCache(daemon, asyncConnectivityListener, relayListListener) + val locationInfoCache = LocationInfoCache(daemon, connectivityListener, relayListListener) val wwwAuthTokenRetriever = WwwAuthTokenRetriever(asyncDaemon) init { asyncDaemon.complete(daemon) - asyncConnectivityListener.complete(connectivityListener) appVersionInfoCache.onCreate() connectionProxy.mainActivity = mainActivity @@ -38,7 +37,6 @@ class ServiceConnection(private val service: ServiceInstance, val mainActivity: fun onDestroy() { asyncDaemon.cancel() - asyncConnectivityListener.cancel() accountCache.onDestroy() appVersionInfoCache.onDestroy() |
