diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-20 12:02:45 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-20 12:02:45 -0300 |
| commit | 2d51a1a84f7ca914e6d157df0e2129af569b086f (patch) | |
| tree | 3a67027e4bf59bc9b2fe2f272ebb26ed3ccd9aa3 /android/src | |
| parent | c203c27524d9d0db930a2f352c2e9d7ec9c7c97a (diff) | |
| parent | f267042992407ae14e3ad634523a4f997a61a366 (diff) | |
| download | mullvadvpn-2d51a1a84f7ca914e6d157df0e2129af569b086f.tar.xz mullvadvpn-2d51a1a84f7ca914e6d157df0e2129af569b086f.zip | |
Merge branch 'fix-login-failure-not-sending-login-status'
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt index 50f0f5940c..6f978cd46f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt @@ -183,27 +183,32 @@ class AccountCache(private val endpoint: ServiceEndpoint) { } private suspend fun doLogin(account: String) { - if (account == accountNumber) { - return - } - val result = daemon.await().getAccountData(account) - val expiry = when (result) { - is GetAccountDataResult.Ok -> DateTime.parse(result.accountData.expiry, EXPIRY_FORMAT) - is GetAccountDataResult.RpcError -> null - else -> return + when (result) { + is GetAccountDataResult.Ok -> { + val expiry = DateTime.parse(result.accountData.expiry, EXPIRY_FORMAT) + + finishLogin(account, expiry) + } + is GetAccountDataResult.RpcError -> finishLogin(account, null) + else -> finishLogin(null, null) } + } + private suspend fun finishLogin(maybeAccount: String?, expiry: DateTime?) { synchronized(this) { markAccountAsNotNew() - accountNumber = account + accountNumber = maybeAccount accountExpiry = expiry - loginStatus = LoginStatus(account, expiry, false) + + loginStatus = maybeAccount?.let { account -> + LoginStatus(account, expiry, false) + } } - daemon.await().setAccount(account) + daemon.await().setAccount(maybeAccount) } private suspend fun doLogout() { |
