summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-08 22:11:04 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-12 17:32:45 +0000
commite7446354e63288588519422a559f8c9def121d07 (patch)
treef9f752d8eef0ad8b8458b5549ba739dd60814b67 /android/src
parent1ccfc5ce37b1f8191c1746c38b373b05356a65be (diff)
downloadmullvadvpn-e7446354e63288588519422a559f8c9def121d07.tar.xz
mullvadvpn-e7446354e63288588519422a559f8c9def121d07.zip
Open Out Of Time screen from Connect screen
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt20
1 files changed, 20 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
index c59f1b192d..8a0953010a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
@@ -12,10 +12,13 @@ import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.TunnelState
+import net.mullvad.mullvadvpn.util.JobTracker
val KEY_IS_TUNNEL_INFO_EXPANDED = "is_tunnel_info_expanded"
class ConnectFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
+ private val jobTracker = JobTracker()
+
private lateinit var actionButton: ConnectActionButton
private lateinit var switchLocationButton: SwitchLocationButton
private lateinit var headerBar: HeaderBar
@@ -98,9 +101,16 @@ class ConnectFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
updateTunnelStateJob?.cancel()
updateTunnelStateJob = updateTunnelState(uiState, connectionProxy.state)
}
+
+ accountCache.onAccountDataChange = { _, expiry ->
+ if (expiry?.isBeforeNow() ?: false) {
+ openOutOfTimeScreen()
+ }
+ }
}
override fun onSafelyPause() {
+ accountCache.onAccountDataChange = null
keyStatusListener.onKeyStatusChange = null
locationInfoCache.onNewLocation = null
relayListListener.onRelayListChange = null
@@ -117,6 +127,7 @@ class ConnectFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
}
override fun onSafelyDestroyView() {
+ jobTracker.cancelAllJobs()
switchLocationButton.onDestroy()
}
@@ -153,4 +164,13 @@ class ConnectFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
commit()
}
}
+
+ private fun openOutOfTimeScreen() {
+ jobTracker.newUiJob("openOutOfTimeScreen") {
+ fragmentManager?.beginTransaction()?.apply {
+ replace(R.id.main_fragment, OutOfTimeFragment())
+ commit()
+ }
+ }
+ }
}