summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-19 20:58:05 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-22 21:32:39 +0000
commit7ed2c0b18432444308c12632442724c42e876605 (patch)
tree52fded1849476ed2a027823590b5b9273b152592 /android
parent0e19f486ef11e20706ddfbe7e6da60a0aa5de17d (diff)
downloadmullvadvpn-7ed2c0b18432444308c12632442724c42e876605.tar.xz
mullvadvpn-7ed2c0b18432444308c12632442724c42e876605.zip
Refactor `NotificationBanner` state updates
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt22
2 files changed, 16 insertions, 9 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
index 9a7c50a9af..ce3e9cc5ad 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -112,8 +112,7 @@ class ConnectFragment : Fragment() {
actionButton.state = uiState
switchLocationButton.state = uiState
-
- notificationBanner.setState(uiState)
+ notificationBanner.tunnelState = uiState
status.setState(uiState)
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
index 1af739dcc6..c0d7f03d26 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt
@@ -8,13 +8,21 @@ class NotificationBanner(val parentView: View) {
private val banner: View = parentView.findViewById(R.id.notification_banner)
private var visible = false
- fun setState(state: TunnelState) {
- when (state) {
- is TunnelState.Disconnecting -> hide()
- is TunnelState.Disconnected -> hide()
- is TunnelState.Connecting -> show()
- is TunnelState.Connected -> hide()
- is TunnelState.Blocked -> show()
+ var tunnelState: TunnelState = TunnelState.Disconnected()
+ set(value) {
+ field = value
+ update()
+ }
+
+ private fun update() {
+ synchronized(this) {
+ when (tunnelState) {
+ is TunnelState.Disconnecting -> hide()
+ is TunnelState.Disconnected -> hide()
+ is TunnelState.Connecting -> show()
+ is TunnelState.Connected -> hide()
+ is TunnelState.Blocked -> show()
+ }
}
}