summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt21
1 files changed, 19 insertions, 2 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 be9032c55b..820984efe1 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
@@ -155,10 +155,27 @@ class AccountCache(private val endpoint: ServiceEndpoint) {
}
private suspend fun doLogin(account: String) {
- if (account != accountNumber) {
+ 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
+ }
+
+ synchronized(this) {
markAccountAsNotNew()
- daemon.await().setAccount(account)
+
+ accountNumber = account
+ accountExpiry = expiry
+ loginStatus = LoginStatus(account, expiry, false)
}
+
+ daemon.await().setAccount(account)
}
private suspend fun doLogout() {