diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-20 19:36:50 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-28 18:40:38 +0000 |
| commit | 593a1e615f036e8a2ded5dae50c543ad50f89e10 (patch) | |
| tree | 03ca27f228dc46c64dd7a41cedf45cc121987274 /android | |
| parent | 1023c5ed6c4f760d310208b7fc1d8d5d74a5c292 (diff) | |
| download | mullvadvpn-593a1e615f036e8a2ded5dae50c543ad50f89e10.tar.xz mullvadvpn-593a1e615f036e8a2ded5dae50c543ad50f89e10.zip | |
Invalidate account expiry when voucher is redeemed
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt index ec0a403f0e..1a300e1fec 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt @@ -15,10 +15,12 @@ import android.widget.EditText import android.widget.TextView import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.VoucherSubmissionResult +import net.mullvad.mullvadvpn.service.AccountCache import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.mullvadvpn.ui.widget.Button import net.mullvad.mullvadvpn.util.JobTracker import net.mullvad.mullvadvpn.util.SegmentedInputFormatter +import org.joda.time.DateTime const val FULL_VOUCHER_CODE_LENGTH = "XXXX-XXXX-XXXX-XXXX".length @@ -29,6 +31,9 @@ class RedeemVoucherDialogFragment : DialogFragment() { private lateinit var errorMessage: TextView private lateinit var voucherInput: EditText + private var accountCache: AccountCache? = null + private var accountExpiry: DateTime? = null + private var accountExpiryListener: Int? = null private var redeemButton: Button? = null private var daemon: MullvadDaemon? = null @@ -50,6 +55,15 @@ class RedeemVoucherDialogFragment : DialogFragment() { parentActivity.serviceNotifier.subscribe(this) { connection -> daemon = connection?.daemon + + accountCache?.onAccountExpiryChange?.unsubscribe(this@RedeemVoucherDialogFragment) + + accountCache = connection?.accountCache?.apply { + onAccountExpiryChange + .subscribe(this@RedeemVoucherDialogFragment) { newAccountExpiry -> + accountExpiry = newAccountExpiry + } + } } } @@ -112,6 +126,10 @@ class RedeemVoucherDialogFragment : DialogFragment() { override fun onDetach() { parentActivity.serviceNotifier.unsubscribe(this) + accountExpiryListener?.let { id -> + accountCache?.onAccountExpiryChange?.unsubscribe(id) + } + super.onDetach() } @@ -140,6 +158,10 @@ class RedeemVoucherDialogFragment : DialogFragment() { private fun handleAddedTime(timeAdded: Long) { if (timeAdded > 0) { + accountExpiry?.let { oldAccountExpiry -> + accountCache?.invalidateAccountExpiry(oldAccountExpiry) + } + dismiss() } } |
