summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-16 20:00:46 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-21 15:02:30 +0000
commitf29892acd6d0d3bc852f91863ef0661af1ee8453 (patch)
tree690be7742a05fd1dc145edba937fb11e2de6477d /android/src
parent79b0e80f63d6926d4ebf52b83f7acdfb5e10683c (diff)
downloadmullvadvpn-f29892acd6d0d3bc852f91863ef0661af1ee8453.tar.xz
mullvadvpn-f29892acd6d0d3bc852f91863ef0661af1ee8453.zip
Change conditions when reconnect is anticipated
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt23
1 files changed, 17 insertions, 6 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt
index bc89cc6c1e..eae5fa0219 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt
@@ -109,15 +109,26 @@ class ConnectionProxy(val context: Context, val daemon: MullvadDaemon) {
synchronized(this) {
val currentState = uiState
- if (currentState is TunnelState.Disconnecting &&
- currentState.actionAfterDisconnect == ActionAfterDisconnect.Reconnect
- ) {
- return false
- } else {
+ val willReconnect = when (currentState) {
+ is TunnelState.Disconnected -> false
+ is TunnelState.Disconnecting -> {
+ when (currentState.actionAfterDisconnect) {
+ ActionAfterDisconnect.Nothing -> false
+ ActionAfterDisconnect.Reconnect -> false
+ ActionAfterDisconnect.Block -> true
+ }
+ }
+ is TunnelState.Connecting -> true
+ is TunnelState.Connected -> true
+ is TunnelState.Error -> true
+ }
+
+ if (willReconnect) {
scheduleToResetAnticipatedState()
uiState = TunnelState.Disconnecting(ActionAfterDisconnect.Reconnect)
- return true
}
+
+ return willReconnect
}
}