diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-02-14 19:15:56 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-02-15 13:13:11 +0000 |
| commit | a2a9f238a76c9bc24d291b0f0758851dda14005a (patch) | |
| tree | f55b631ca4f0f2e95e13fa0e18ff90ecf693b675 /android/src | |
| parent | 935f1205aa2cf5bf2d349b88822494b9d5b6faef (diff) | |
| download | mullvadvpn-a2a9f238a76c9bc24d291b0f0758851dda14005a.tar.xz mullvadvpn-a2a9f238a76c9bc24d291b0f0758851dda14005a.zip | |
Implement `ConnectionProxy.reconnect()`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt index 16b34b137d..e55c696a2b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -66,6 +66,15 @@ class ConnectionProxy(val context: Context, val daemon: MullvadDaemon) { } } + fun reconnect() { + if (anticipateReconnectingState()) { + cancelActiveAction() + activeAction = GlobalScope.launch(Dispatchers.Default) { + daemon.reconnect() + } + } + } + fun disconnect() { if (anticipateDisconnectingState()) { cancelActiveAction() @@ -103,6 +112,21 @@ class ConnectionProxy(val context: Context, val daemon: MullvadDaemon) { } } + private fun anticipateReconnectingState(): Boolean { + synchronized(this) { + val currentState = uiState + + if (currentState is TunnelState.Disconnecting && + currentState.actionAfterDisconnect == ActionAfterDisconnect.Reconnect) { + return false + } else { + scheduleToResetAnticipatedState() + uiState = TunnelState.Disconnecting(ActionAfterDisconnect.Reconnect) + return true + } + } + } + private fun anticipateDisconnectingState(): Boolean { synchronized(this) { val currentState = uiState |
