diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 3 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt | 22 |
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() + } } } |
