diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-09 18:13:44 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-12 17:32:46 +0000 |
| commit | 72d14f70d1d4456d8aecb00ac24e09c086f0b241 (patch) | |
| tree | 240bf82d5d0ae0a6089efd2815e9bb170fae8048 /android/src | |
| parent | 606335139d547233fc01369640032b7a811c70a1 (diff) | |
| download | mullvadvpn-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.kt | 28 |
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() + } + } } |
