diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt | 21 |
1 files changed, 9 insertions, 12 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 2c46e34292..db19a80095 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -25,18 +25,15 @@ class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>) private val attachListenerJob = attachListener() private val fetchInitialStateJob = fetchInitialState() - private var realState: TunnelState? = null + private val initialState: TunnelState = TunnelState.Disconnected() + + var state = initialState set(value) { field = value - uiState = value ?: TunnelState.Disconnected() - } - - val state: TunnelState - get() { - return realState ?: TunnelState.Disconnected() + uiState = value } - var uiState: TunnelState = TunnelState.Disconnected() + var uiState = initialState private set(value) { field = value onUiStateChange.notify(value) @@ -128,11 +125,11 @@ class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>) } private fun fetchInitialState() = GlobalScope.launch(Dispatchers.Default) { - val initialState = daemon.await().getState() + val currentState = daemon.await().getState() synchronized(this) { - if (realState == null) { - realState = initialState + if (state === initialState) { + state = currentState } } } @@ -140,7 +137,7 @@ class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>) private fun attachListener() = GlobalScope.launch(Dispatchers.Default) { daemon.await().onTunnelStateChange = { newState -> synchronized(this) { - realState = newState + state = newState } } } |
