diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-15 12:49:03 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-31 14:36:30 +0000 |
| commit | 6805ea472980c6e2a6abe9d9b33eec9683ddfc46 (patch) | |
| tree | b12ea64a693d07da77e1f706315dd4ead6cd37a9 /android/src | |
| parent | 4532e9a9fa613af18f4b0fa33327ba21403ecbb4 (diff) | |
| download | mullvadvpn-6805ea472980c6e2a6abe9d9b33eec9683ddfc46.tar.xz mullvadvpn-6805ea472980c6e2a6abe9d9b33eec9683ddfc46.zip | |
Add `logout` method to `AccountCache`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt | 12 |
1 files changed, 12 insertions, 0 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 3793774e58..be9032c55b 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 @@ -29,6 +29,7 @@ class AccountCache(private val endpoint: ServiceEndpoint) { private sealed class Command { object CreateAccount : Command() data class Login(val account: String) : Command() + object Logout : Command() } } @@ -71,6 +72,10 @@ class AccountCache(private val endpoint: ServiceEndpoint) { commandChannel.sendBlocking(Command.Login(account)) } + fun logout() { + commandChannel.sendBlocking(Command.Logout) + } + fun fetchAccountExpiry() { synchronized(this) { accountNumber?.let { account -> @@ -135,6 +140,7 @@ class AccountCache(private val endpoint: ServiceEndpoint) { when (command) { is Command.CreateAccount -> doCreateAccount() is Command.Login -> doLogin(command.account) + is Command.Logout -> doLogout() } } catch (exception: ClosedReceiveChannelException) { // Command channel was closed, stop the actor @@ -155,6 +161,12 @@ class AccountCache(private val endpoint: ServiceEndpoint) { } } + private suspend fun doLogout() { + if (accountNumber != null) { + daemon.await().setAccount(null) + } + } + private fun fetchAccountHistory() { jobTracker.newBackgroundJob("fetchHistory") { daemon.await().getAccountHistory()?.let { history -> |
