diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-20 19:40:43 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-28 18:41:33 +0000 |
| commit | d59c331f5c99f0badbcacdd468e4493cbffb1906 (patch) | |
| tree | b357781e9b747678660177ad8fc8a54dd1b8f414 | |
| parent | 553ec2a35eadeffbe94e5f1b2b4b6a8e04eedc9a (diff) | |
| download | mullvadvpn-d59c331f5c99f0badbcacdd468e4493cbffb1906.tar.xz mullvadvpn-d59c331f5c99f0badbcacdd468e4493cbffb1906.zip | |
Automatically update expiry after adding time
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index eeff02575c..60c7491a3e 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -18,6 +18,19 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { private val timeStyle = DateFormat.SHORT private val expiryFormatter = DateFormat.getDateTimeInstance(dateStyle, timeStyle) + private var oldAccountExpiry: DateTime? = null + + private var currentAccountExpiry: DateTime? = null + set(value) { + field = value + + synchronized(this) { + if (value != oldAccountExpiry) { + oldAccountExpiry = null + } + } + } + private lateinit var accountExpiryView: InformationView private lateinit var accountNumberView: CopyableInformationView @@ -32,7 +45,9 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { parentActivity.onBackPressed() } - view.findViewById<UrlButton>(R.id.buy_credit).prepare(daemon, jobTracker) + view.findViewById<UrlButton>(R.id.buy_credit).prepare(daemon, jobTracker) { + checkForAddedTime() + } view.findViewById<Button>(R.id.redeem_voucher).setOnClickAction("redeem", jobTracker) { showRedeemVoucherDialog() @@ -60,9 +75,14 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { accountCache.onAccountExpiryChange.subscribe(this) { accountExpiry -> jobTracker.newUiJob("updateAccountExpiry") { + currentAccountExpiry = accountExpiry updateAccountExpiry(accountExpiry) } } + + oldAccountExpiry?.let { expiry -> + accountCache.invalidateAccountExpiry(expiry) + } } override fun onSafelyPause() { @@ -70,6 +90,13 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { accountCache.onAccountExpiryChange.unsubscribe(this) } + private fun checkForAddedTime() { + currentAccountExpiry?.let { expiry -> + oldAccountExpiry = expiry + accountCache.invalidateAccountExpiry(expiry) + } + } + private fun updateAccountExpiry(accountExpiry: DateTime?) { if (accountExpiry != null) { accountExpiryView.information = expiryFormatter.format(accountExpiry.toDate()) |
