diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-19 18:55:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-26 14:14:28 +0000 |
| commit | 1b7de9d13455ab1d56f2915beb09f36274f899d3 (patch) | |
| tree | ab73f945af0828e4ed14da3c9214f1b9fcc769fd /android/src/main | |
| parent | 33b1dc6b24adaf248e983511f0e575abce52a030 (diff) | |
| download | mullvadvpn-1b7de9d13455ab1d56f2915beb09f36274f899d3.tar.xz mullvadvpn-1b7de9d13455ab1d56f2915beb09f36274f899d3.zip | |
Refactor `AccountFragment` to use a job tracker
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt | 29 |
1 files changed, 14 insertions, 15 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 01615b7d7a..b13863f108 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -6,10 +6,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import java.text.DateFormat -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.ui.widget.CopyableInformationView import net.mullvad.mullvadvpn.ui.widget.InformationView @@ -19,8 +15,6 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { private lateinit var accountExpiryView: InformationView private lateinit var accountNumberView: CopyableInformationView - private var updateViewJob: Job? = null - override fun onSafelyCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -42,10 +36,8 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { override fun onSafelyResume() { accountCache.onAccountDataChange = { accountNumber, accountExpiry -> - updateViewJob = updateView(accountNumber, accountExpiry) - - if (accountExpiry == null) { - accountCache.fetchAccountExpiry() + jobTracker.newUiJob("updateView") { + updateView(accountNumber, accountExpiry) } } } @@ -54,10 +46,15 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { accountCache.onAccountDataChange = null } - private fun updateView(accountNumber: String?, accountExpiry: DateTime?) = - GlobalScope.launch(Dispatchers.Main) { + private fun updateView(accountNumber: String?, accountExpiry: DateTime?) { accountNumberView.information = accountNumber - accountExpiryView.information = accountExpiry?.let { expiry -> formatExpiry(expiry) } + + if (accountExpiry != null) { + accountExpiryView.information = formatExpiry(accountExpiry) + } else { + accountExpiryView.information = null + accountCache.fetchAccountExpiry() + } } private fun formatExpiry(expiry: DateTime): String { @@ -73,8 +70,10 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { goToLoginScreen() } - private fun clearAccountNumber() = GlobalScope.launch(Dispatchers.Default) { - daemon.setAccount(null) + private fun clearAccountNumber() { + jobTracker.newBackgroundJob("clearAccountNumber") { + daemon.setAccount(null) + } } private fun clearBackStack() { |
