summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-16 01:06:16 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-16 11:21:31 +0000
commit26b9d66572a8d0a1c088bb54eda2a387fb96ae47 (patch)
tree121145814bcb050b428e23242994bd6b89281824 /android/src
parent105ae2686a04abc3cffba5a54c27efcdd0ec9340 (diff)
downloadmullvadvpn-26b9d66572a8d0a1c088bb54eda2a387fb96ae47.tar.xz
mullvadvpn-26b9d66572a8d0a1c088bb54eda2a387fb96ae47.zip
Refactor state initialization
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt21
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
}
}
}