summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-20 12:02:45 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-20 12:02:45 -0300
commit2d51a1a84f7ca914e6d157df0e2129af569b086f (patch)
tree3a67027e4bf59bc9b2fe2f272ebb26ed3ccd9aa3 /android/src
parentc203c27524d9d0db930a2f352c2e9d7ec9c7c97a (diff)
parentf267042992407ae14e3ad634523a4f997a61a366 (diff)
downloadmullvadvpn-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.kt27
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() {