summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-16 17:36:46 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-31 14:36:30 +0000
commit4ec53fbb79dd369d6ee89f35295b8d873feeaab3 (patch)
tree1af09c0462b3d38dfc55d61aaa1dd05611e8c159 /android/src/main
parent0c1b8060860f8917e031a48d6a271f847a51b4b0 (diff)
downloadmullvadvpn-4ec53fbb79dd369d6ee89f35295b8d873feeaab3.tar.xz
mullvadvpn-4ec53fbb79dd369d6ee89f35295b8d873feeaab3.zip
Use an intermittent daemon in `AccountCache`
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt20
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt2
2 files changed, 13 insertions, 9 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
index 2bc50ab461..950710374c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
@@ -4,12 +4,16 @@ import kotlinx.coroutines.delay
import net.mullvad.mullvadvpn.model.GetAccountDataResult
import net.mullvad.mullvadvpn.service.endpoint.SettingsListener
import net.mullvad.mullvadvpn.util.ExponentialBackoff
+import net.mullvad.mullvadvpn.util.Intermittent
import net.mullvad.mullvadvpn.util.JobTracker
import net.mullvad.talpid.util.EventNotifier
import org.joda.time.DateTime
import org.joda.time.format.DateTimeFormat
-class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsListener) {
+class AccountCache(
+ val settingsListener: SettingsListener,
+ val daemon: Intermittent<MullvadDaemon>
+) {
companion object {
public val EXPIRY_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss z")
@@ -43,17 +47,17 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
}
}
- fun createNewAccount(): String? {
+ suspend fun createNewAccount(): String? {
newlyCreatedAccount = true
createdAccountExpiry = null
- return daemon.createNewAccount()
+ return daemon.await().createNewAccount()
}
- fun login(account: String) {
+ suspend fun login(account: String) {
if (account != accountNumber) {
markAccountAsNotNew()
- daemon.setAccount(account)
+ daemon.await().setAccount(account)
}
}
@@ -66,7 +70,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
}
do {
- val result = daemon.getAccountData(account)
+ val result = daemon.await().getAccountData(account)
if (result is GetAccountDataResult.Ok) {
val expiry = result.accountData.expiry
@@ -97,7 +101,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
fun removeAccountFromHistory(accountToken: String) {
jobTracker.newBackgroundJob("removeAccountFromHistory $accountToken") {
- daemon.removeAccountFromHistory(accountToken)
+ daemon.await().removeAccountFromHistory(accountToken)
fetchAccountHistory()
}
}
@@ -113,7 +117,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
private fun fetchAccountHistory() {
jobTracker.newBackgroundJob("fetchHistory") {
- daemon.getAccountHistory()?.let { history ->
+ daemon.await().getAccountHistory()?.let { history ->
accountHistory = history
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
index 251802dce9..73b3909aac 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt
@@ -13,7 +13,7 @@ class ServiceInstance(
val settingsListener: SettingsListener,
val splitTunneling: SplitTunneling
) {
- val accountCache = AccountCache(daemon, settingsListener)
+ val accountCache = AccountCache(settingsListener, intermittentDaemon)
fun onDestroy() {
accountCache.onDestroy()