diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-09-02 17:15:09 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-09-02 17:15:09 -0300 |
| commit | 69a7b252995b14e164ecfdc3def8c39a7695f8bb (patch) | |
| tree | 2ace89f18cf9c31c11bca92da0fa21b77a747f84 /android/src | |
| parent | e01c04bd2c8c9ad3d09b449d5cd0a74bb6275948 (diff) | |
| parent | 2facdda60e9415fb7dfea54aca87e5ea4dbc5cf0 (diff) | |
| download | mullvadvpn-69a7b252995b14e164ecfdc3def8c39a7695f8bb.tar.xz mullvadvpn-69a7b252995b14e164ecfdc3def8c39a7695f8bb.zip | |
Merge branch 'fix-connection-proxy-init-races'
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt | 26 |
1 files changed, 10 insertions, 16 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 3f1efab066..be0458e66a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt @@ -22,31 +22,25 @@ class ConnectionProxy(val context: Context, val daemon: MullvadDaemon) { private var activeAction: Job? = null private var resetAnticipatedStateJob: Job? = null - private val fetchInitialStateJob = fetchInitialState() private val initialState: TunnelState = TunnelState.Disconnected() - var state = initialState - private set(value) { - field = value - resetAnticipatedStateJob?.cancel() - onStateChange.notify(value) - uiState = value - } + var onStateChange = EventNotifier(initialState) + var onUiStateChange = EventNotifier(initialState) + var vpnPermission = CompletableDeferred<Boolean>() - var uiState = initialState - private set(value) { - field = value - onUiStateChange.notify(value) - } + var state by onStateChange.notifiable() + private set + var uiState by onUiStateChange.notifiable() + private set - var onUiStateChange = EventNotifier(uiState) - var onStateChange = EventNotifier(state) - var vpnPermission = CompletableDeferred<Boolean>() + private val fetchInitialStateJob = fetchInitialState() init { daemon.onTunnelStateChange = { newState -> synchronized(this) { + resetAnticipatedStateJob?.cancel() state = newState + uiState = newState } } } |
