summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-20 15:15:34 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-04 12:55:02 +0000
commitaabf51c5d161cf02de1082451ce251a6490d3654 (patch)
tree422e6c5589007e0da7bebac56dd6f53c64106241 /android
parent882f7bdb5ee24559343a1fccf1530f4d18ad2f8b (diff)
downloadmullvadvpn-aabf51c5d161cf02de1082451ce251a6490d3654.tar.xz
mullvadvpn-aabf51c5d161cf02de1082451ce251a6490d3654.zip
Don't fetch location when device is offline
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt8
2 files changed, 6 insertions, 4 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
index 381df7a6b0..da313c27c1 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
@@ -42,7 +42,7 @@ class MainActivity : FragmentActivity() {
val problemReport = MullvadProblemReport()
var settingsListener = SettingsListener(this)
var relayListListener = RelayListListener(this)
- val locationInfoCache = LocationInfoCache(daemon, relayListListener)
+ val locationInfoCache = LocationInfoCache(daemon, connectivityListener, relayListListener)
val accountCache = AccountCache(settingsListener, daemon)
val wwwAuthTokenRetriever = WwwAuthTokenRetriever(daemon)
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 0057f034d8..a749e036ef 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt
@@ -12,10 +12,12 @@ 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.talpid.ConnectivityListener
import net.mullvad.talpid.tunnel.ActionAfterDisconnect
class LocationInfoCache(
val daemon: Deferred<MullvadDaemon>,
+ val connectivityListener: Deferred<ConnectivityListener>,
val relayListListener: RelayListListener
) {
private var lastKnownRealLocation: GeoIpLocation? = null
@@ -112,10 +114,10 @@ class LocationInfoCache(
daemon.await().getCurrentLocation()
}
- private fun shouldRetryFetch(): Boolean {
+ private suspend fun shouldRetryFetch(): Boolean {
val state = this.state
- return state is TunnelState.Disconnected ||
- state is TunnelState.Connected
+ return connectivityListener.await().isConnected &&
+ (state is TunnelState.Disconnected || state is TunnelState.Connected)
}
}