diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-13 17:54:34 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-14 18:51:00 +0000 |
| commit | 2625faf829df6fc768d0edcdfdca237af56dc081 (patch) | |
| tree | 49e1680c11cdefa0f4fa886d55c8fd355a461009 /android/src | |
| parent | 65b957623a04bff6a9c5b246635225ff0317c819 (diff) | |
| download | mullvadvpn-2625faf829df6fc768d0edcdfdca237af56dc081.tar.xz mullvadvpn-2625faf829df6fc768d0edcdfdca237af56dc081.zip | |
Refactor expiry fetch in `AccountCache`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt index 07fa7911fc..86e1b0c95a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt @@ -27,24 +27,12 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList } fun fetchAccountExpiry() { - accountNumber?.let { accountNumberUsedForFetch -> + accountNumber?.let { account -> jobTracker.newBackgroundJob("fetch") { - val accountData = accountNumberUsedForFetch?.let { account -> - val result = daemon.getAccountData(account) + val result = daemon.getAccountData(account) - when (result) { - is GetAccountDataResult.Ok -> result.accountData - else -> null - } - } - - synchronized(this@AccountCache) { - if (this@AccountCache.accountNumber === accountNumberUsedForFetch) { - accountData?.expiry?.let { expiry -> - accountExpiry = DateTime.parse(expiry, EXPIRY_FORMAT) - notifyChange() - } - } + if (result is GetAccountDataResult.Ok) { + handleNewExpiry(account, result.accountData.expiry) } } } @@ -65,6 +53,15 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList } } + private fun handleNewExpiry(accountNumberUsedForFetch: String, expiryString: String) { + synchronized(this) { + if (accountNumber === accountNumberUsedForFetch) { + accountExpiry = DateTime.parse(expiryString, EXPIRY_FORMAT) + notifyChange() + } + } + } + private fun notifyChange() { onAccountDataChange?.invoke(accountNumber, accountExpiry) } |
