diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-09-16 08:29:33 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-09-16 08:29:33 -0300 |
| commit | 0f204502615afcdebbaac7b16eff40f0bb70f2cf (patch) | |
| tree | e7258e58837d1a82b48b0f3d64d2075b47eef1f9 /android/src | |
| parent | 58002ac280a47587887af836fef81e9191c8b89a (diff) | |
| parent | 8461ee34c84fc2de9d6a4e027d30d7ef0f796b7a (diff) | |
| download | mullvadvpn-0f204502615afcdebbaac7b16eff40f0bb70f2cf.tar.xz mullvadvpn-0f204502615afcdebbaac7b16eff40f0bb70f2cf.zip | |
Merge branch 'update-ui-tunnel-state-usage'
Diffstat (limited to 'android/src')
3 files changed, 17 insertions, 17 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt index af666f99e4..be534edec5 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt @@ -162,14 +162,14 @@ class ConnectFragment : Fragment() { private fun updateTunnelState(uiState: TunnelState, realState: TunnelState) = GlobalScope.launch(Dispatchers.Main) { + notificationBanner.tunnelState = realState locationInfoCache.state = realState locationInfo.state = realState headerBar.setState(realState) + status.setState(realState) actionButton.tunnelState = uiState switchLocationButton.state = uiState - notificationBanner.tunnelState = uiState - status.setState(uiState) } private fun updateKeyStatus(keyStatus: KeygenEvent?) = GlobalScope.launch(Dispatchers.Main) { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt index f42a48ce8d..dfb153bbc2 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt @@ -26,8 +26,8 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C private val notificationManager = service.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - private val listenerId = connectionProxy.onUiStateChange.subscribe { uiState -> - tunnelState = uiState + private val listenerId = connectionProxy.onStateChange.subscribe { state -> + tunnelState = state } private var reconnecting = false @@ -147,7 +147,7 @@ class ForegroundNotificationManager(val service: Service, val connectionProxy: C fun onDestroy() { listenerId?.let { listener -> - connectionProxy.onUiStateChange.unsubscribe(listener) + connectionProxy.onStateChange.unsubscribe(listener) } service.apply { 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..1919e2c820 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -25,24 +25,23 @@ 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() + onStateChange.notify(value) + uiState = value } - var uiState: TunnelState = TunnelState.Disconnected() + var uiState = initialState private set(value) { field = value onUiStateChange.notify(value) } var onUiStateChange = EventNotifier(uiState) + var onStateChange = EventNotifier(state) var vpnPermission = CompletableDeferred<Boolean>() fun connect() { @@ -74,6 +73,7 @@ class ConnectionProxy(val context: Context, val daemon: Deferred<MullvadDaemon>) fun onDestroy() { onUiStateChange.unsubscribeAll() + onStateChange.unsubscribeAll() attachListenerJob.cancel() detachListener() fetchInitialStateJob.cancel() @@ -128,11 +128,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 +140,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 } } } |
