diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-22 21:10:49 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-23 18:02:34 +0000 |
| commit | 878240b7fd8690e2178d56f5f59449d91d30799a (patch) | |
| tree | 19d7e2b06416af788226c8f027f18cdb6509a44e /android/src/main | |
| parent | e2438a39dd8a763788f60ad1ec287b8461eb946e (diff) | |
| download | mullvadvpn-878240b7fd8690e2178d56f5f59449d91d30799a.tar.xz mullvadvpn-878240b7fd8690e2178d56f5f59449d91d30799a.zip | |
Forward key events to `NotificationBanner`
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt | 16 |
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( |
