diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt | 23 |
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 } } |
