summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-22 21:10:49 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-07-23 18:02:34 +0000
commit878240b7fd8690e2178d56f5f59449d91d30799a (patch)
tree19d7e2b06416af788226c8f027f18cdb6509a44e
parente2438a39dd8a763788f60ad1ec287b8461eb946e (diff)
downloadmullvadvpn-878240b7fd8690e2178d56f5f59449d91d30799a.tar.xz
mullvadvpn-878240b7fd8690e2178d56f5f59449d91d30799a.zip
Forward key events to `NotificationBanner`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt16
1 files changed, 16 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
index 7ea6be75e8..1a3d2bbeae 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -14,8 +14,10 @@ import android.view.ViewGroup
import android.widget.ImageButton
import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy
+import net.mullvad.mullvadvpn.dataproxy.KeyStatusListener
import net.mullvad.mullvadvpn.dataproxy.LocationInfoCache
import net.mullvad.mullvadvpn.dataproxy.RelayListListener
+import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.TunnelState
class ConnectFragment : Fragment() {
@@ -28,9 +30,11 @@ class ConnectFragment : Fragment() {
private lateinit var parentActivity: MainActivity
private lateinit var connectionProxy: ConnectionProxy
+ private lateinit var keyStatusListener: KeyStatusListener
private lateinit var locationInfoCache: LocationInfoCache
private lateinit var relayListListener: RelayListListener
+ private lateinit var updateKeyStatusJob: Job
private lateinit var updateTunnelStateJob: Job
override fun onAttach(context: Context) {
@@ -38,6 +42,7 @@ class ConnectFragment : Fragment() {
parentActivity = context as MainActivity
connectionProxy = parentActivity.connectionProxy
+ keyStatusListener = parentActivity.keyStatusListener
locationInfoCache = parentActivity.locationInfoCache
relayListListener = parentActivity.relayListListener
}
@@ -68,6 +73,7 @@ class ConnectFragment : Fragment() {
switchLocationButton = SwitchLocationButton(view)
switchLocationButton.onClick = { openSwitchLocationScreen() }
+ updateKeyStatusJob = updateKeyStatus(keyStatusListener.keyStatus)
updateTunnelStateJob = updateTunnelState(connectionProxy.uiState)
connectionProxy.onUiStateChange = { uiState ->
@@ -81,12 +87,18 @@ class ConnectFragment : Fragment() {
override fun onResume() {
super.onResume()
+ keyStatusListener.onKeyStatusChange = { keyStatus ->
+ updateKeyStatusJob.cancel()
+ updateKeyStatusJob = updateKeyStatus(keyStatus)
+ }
+
relayListListener.onRelayListChange = { relayList, selectedRelayItem ->
switchLocationButton.location = selectedRelayItem
}
}
override fun onPause() {
+ keyStatusListener.onKeyStatusChange = null
relayListListener.onRelayListChange = null
super.onPause()
@@ -114,6 +126,10 @@ class ConnectFragment : Fragment() {
status.setState(uiState)
}
+ private fun updateKeyStatus(keyStatus: KeygenEvent?) = GlobalScope.launch(Dispatchers.Main) {
+ notificationBanner.keyState = keyStatus
+ }
+
private fun openSwitchLocationScreen() {
fragmentManager?.beginTransaction()?.apply {
setCustomAnimations(