summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-09 18:13:44 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-12 17:32:46 +0000
commit72d14f70d1d4456d8aecb00ac24e09c086f0b241 (patch)
tree240bf82d5d0ae0a6089efd2815e9bb170fae8048 /android/src
parent606335139d547233fc01369640032b7a811c70a1 (diff)
downloadmullvadvpn-72d14f70d1d4456d8aecb00ac24e09c086f0b241.tar.xz
mullvadvpn-72d14f70d1d4456d8aecb00ac24e09c086f0b241.zip
Advance to Connect screen on account time increase
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/OutOfTimeFragment.kt28
1 files changed, 28 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/OutOfTimeFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/OutOfTimeFragment.kt
index 88aee967e7..a6b2ef061f 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/OutOfTimeFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/OutOfTimeFragment.kt
@@ -10,6 +10,7 @@ import net.mullvad.mullvadvpn.ui.widget.Button
import net.mullvad.mullvadvpn.ui.widget.UrlButton
import net.mullvad.mullvadvpn.util.JobTracker
import net.mullvad.talpid.tunnel.ActionAfterDisconnect
+import org.joda.time.DateTime
class OutOfTimeFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
private val jobTracker = JobTracker()
@@ -68,6 +69,16 @@ class OutOfTimeFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen)
return view
}
+ override fun onSafelyResume() {
+ accountCache.onAccountDataChange = { _, expiry ->
+ checkExpiry(expiry)
+ }
+ }
+
+ override fun onSafelyPause() {
+ accountCache.onAccountDataChange = null
+ }
+
override fun onSafelyDestroyView() {
jobTracker.cancelAllJobs()
@@ -113,4 +124,21 @@ class OutOfTimeFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen)
buyCreditButton.setEnabled(hasConnectivity)
redeemButton.setEnabled(hasConnectivity)
}
+
+ private fun checkExpiry(maybeExpiry: DateTime?) {
+ maybeExpiry?.let { expiry ->
+ if (expiry.isAfterNow()) {
+ jobTracker.newUiJob("advanceToConnectScreen") {
+ advanceToConnectScreen()
+ }
+ }
+ }
+ }
+
+ private fun advanceToConnectScreen() {
+ fragmentManager?.beginTransaction()?.apply {
+ replace(R.id.main_fragment, ConnectFragment())
+ commit()
+ }
+ }
}