diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-20 15:15:34 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-12-04 12:55:02 +0000 |
| commit | aabf51c5d161cf02de1082451ce251a6490d3654 (patch) | |
| tree | 422e6c5589007e0da7bebac56dd6f53c64106241 /android/src | |
| parent | 882f7bdb5ee24559343a1fccf1530f4d18ad2f8b (diff) | |
| download | mullvadvpn-aabf51c5d161cf02de1082451ce251a6490d3654.tar.xz mullvadvpn-aabf51c5d161cf02de1082451ce251a6490d3654.zip | |
Don't fetch location when device is offline
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt | 8 |
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) } } |
