diff options
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) } } |
