summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-16 08:29:33 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-16 08:29:33 -0300
commit0f204502615afcdebbaac7b16eff40f0bb70f2cf (patch)
treee7258e58837d1a82b48b0f3d64d2075b47eef1f9 /android/src
parent58002ac280a47587887af836fef81e9191c8b89a (diff)
parent8461ee34c84fc2de9d6a4e027d30d7ef0f796b7a (diff)
downloadmullvadvpn-0f204502615afcdebbaac7b16eff40f0bb70f2cf.tar.xz
mullvadvpn-0f204502615afcdebbaac7b16eff40f0bb70f2cf.zip
Merge branch 'update-ui-tunnel-state-usage'
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt24
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
}
}
}