diff options
| author | saber safavi <saber.safavi@codic.se> | 2023-11-07 14:00:46 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-11-15 16:04:06 +0100 |
| commit | 365b1b92309754cfc521c2d8d6dec262bbf11fc5 (patch) | |
| tree | 94078ca0d66714f0a74218bacd32a5e64cc6ee1a /android | |
| parent | 2baf3f017ca48bc079720e2c942e2f04289fcf08 (diff) | |
| download | mullvadvpn-365b1b92309754cfc521c2d8d6dec262bbf11fc5.tar.xz mullvadvpn-365b1b92309754cfc521c2d8d6dec262bbf11fc5.zip | |
Skip sending account expiry missing events when failing to fetch
Diffstat (limited to 'android')
| -rw-r--r-- | android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt index ba470a6b24..64459dbfb9 100644 --- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt +++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt @@ -72,8 +72,9 @@ class AccountCache(private val endpoint: ServiceEndpoint) { registerHandler(Request.FetchAccountExpiry::class) { _ -> jobTracker.newBackgroundJob("fetchAccountExpiry") { - accountExpiry = - cachedAccountToken?.let { fetchAccountExpiry(it) } ?: AccountExpiry.Missing + val token = cachedAccountToken ?: return@newBackgroundJob + val newAccountExpiry = fetchAccountExpiry(token) ?: return@newBackgroundJob + accountExpiry = newAccountExpiry } } @@ -141,6 +142,7 @@ class AccountCache(private val endpoint: ServiceEndpoint) { private suspend fun doLogout() { daemon.await().logoutAccount() + accountExpiry = AccountExpiry.Missing accountHistory = fetchAccountHistory() } @@ -154,15 +156,15 @@ class AccountCache(private val endpoint: ServiceEndpoint) { } } - private suspend fun fetchAccountExpiry(accountToken: String): AccountExpiry { + private suspend fun fetchAccountExpiry(accountToken: String): AccountExpiry? { return fetchAccountData(accountToken).let { result -> - if (result is GetAccountDataResult.Ok) { - result.accountData.expiry.parseAsDateTime()?.let { parsedDateTime -> - AccountExpiry.Available(parsedDateTime) + when (result) { + is GetAccountDataResult.Ok -> { + result.accountData.expiry.parseAsDateTime()?.let { AccountExpiry.Available(it) } } - ?: AccountExpiry.Missing - } else { - AccountExpiry.Missing + GetAccountDataResult.InvalidAccount -> AccountExpiry.Missing + GetAccountDataResult.OtherError -> null + GetAccountDataResult.RpcError -> null } } } |
