summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-12 11:48:29 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-01-07 14:03:28 +0000
commit814e25e623b8f717aee66d66e2ccaca720930ebc (patch)
tree3635c6682d4e2fc27c8118648f491ea7ca876c49 /android/src/main
parent00edefaeaf18fee66d5beff17ed36caaee3e24dc (diff)
downloadmullvadvpn-814e25e623b8f717aee66d66e2ccaca720930ebc.tar.xz
mullvadvpn-814e25e623b8f717aee66d66e2ccaca720930ebc.zip
Use synchronous `ConnectivityListener`
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt12
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceConnection.kt4
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()