diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-25 21:43:19 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-31 14:36:30 +0000 |
| commit | a073d28823d413651e8b5df52eb654d2a99202be (patch) | |
| tree | 74894fa97c6b603970517ccda9af0d187446dc35 /android/src | |
| parent | ddaabc78d194a853ccad3deb26cecc612c4ab857 (diff) | |
| download | mullvadvpn-a073d28823d413651e8b5df52eb654d2a99202be.tar.xz mullvadvpn-a073d28823d413651e8b5df52eb654d2a99202be.zip | |
Implement login logic in the service side
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt | 21 |
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() { |
