diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-22 18:37:53 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-26 14:14:28 +0000 |
| commit | efc7f53b22cb9d19a1d09c1836899eb281beece8 (patch) | |
| tree | 1e0435fa86c97c2bb662f1fdeeaeb7e8210ab8e5 | |
| parent | 717339dab97351f22f4c509c18be326fa4bab3e5 (diff) | |
| download | mullvadvpn-efc7f53b22cb9d19a1d09c1836899eb281beece8.tar.xz mullvadvpn-efc7f53b22cb9d19a1d09c1836899eb281beece8.zip | |
Refactor `SettingsFragment` to use the job tracker
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt index 5aa649e0cc..db0cfa15ed 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt @@ -10,10 +10,6 @@ import android.view.ViewGroup import android.widget.Button import android.widget.ImageButton import android.widget.TextView -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.dataproxy.AppVersionInfoCache import net.mullvad.mullvadvpn.service.AccountCache @@ -32,8 +28,6 @@ class SettingsFragment : ServiceAwareFragment() { private var accountCache: AccountCache? = null private var versionInfoCache: AppVersionInfoCache? = null - private var updateAccountInfoJob: Job? = null - private var updateVersionInfoJob: Job? = null override fun onNewServiceConnection(serviceConnection: ServiceConnection) { accountCache = serviceConnection.accountCache @@ -113,26 +107,20 @@ class SettingsFragment : ServiceAwareFragment() { super.onPause() } - override fun onDestroyView() { - updateAccountInfoJob?.cancel() - updateVersionInfoJob?.cancel() - super.onDestroyView() - } - private fun configureListeners() { accountCache?.apply { onAccountDataChange = { account, expiry -> - updateAccountInfoJob?.cancel() - updateAccountInfoJob = updateAccountInfo(account != null, expiry) + jobTracker.newUiJob("updateAccountInfo") { + updateAccountInfo(account != null, expiry) + } } fetchAccountExpiry() } - versionInfoCache?.apply { - onUpdate = { - updateVersionInfoJob?.cancel() - updateVersionInfoJob = updateVersionInfo() + versionInfoCache?.onUpdate = { + jobTracker.newUiJob("updateVersionInfo") { + updateVersionInfo() } } } @@ -157,10 +145,7 @@ class SettingsFragment : ServiceAwareFragment() { startActivity(intent) } - private fun updateAccountInfo( - loggedIn: Boolean, - expiry: DateTime? - ) = GlobalScope.launch(Dispatchers.Main) { + private fun updateAccountInfo(loggedIn: Boolean, expiry: DateTime?) { updateLoggedInStatus(loggedIn) remainingTimeLabel.accountExpiry = expiry } @@ -177,7 +162,7 @@ class SettingsFragment : ServiceAwareFragment() { advancedMenu.visibility = visibility } - private fun updateVersionInfo() = GlobalScope.launch(Dispatchers.Main) { + private fun updateVersionInfo() { val isOutdated = versionInfoCache?.isOutdated ?: false val isSupported = versionInfoCache?.isSupported ?: true |
