summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-10-01 16:11:38 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-10-01 17:55:13 +0000
commit431a915cdf578f093a04f5cd179e431475559179 (patch)
tree239251aca341f91bec93b04c66279fe55504e0fc /android/src
parentd1100512b14489a5fd21bf727f4794ccd786c561 (diff)
downloadmullvadvpn-431a915cdf578f093a04f5cd179e431475559179.tar.xz
mullvadvpn-431a915cdf578f093a04f5cd179e431475559179.zip
Return `GetAccountDataResult` from daemon method
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt14
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt8
3 files changed, 17 insertions, 9 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
index 5561043791..fb1e42608e 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
@@ -17,6 +17,7 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.async
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
+import net.mullvad.mullvadvpn.model.GetAccountDataResult
class LoginFragment : Fragment() {
private lateinit var parentActivity: MainActivity
@@ -99,13 +100,14 @@ class LoginFragment : Fragment() {
loginJob?.cancel()
loginJob = GlobalScope.async(Dispatchers.Default) {
val daemon = parentActivity.daemon.await()
- val accountData = daemon.getAccountData(accountToken)
+ val accountDataResult = daemon.getAccountData(accountToken)
- if (accountData != null) {
- daemon.setAccount(accountToken)
- true
- } else {
- false
+ when (accountDataResult) {
+ is GetAccountDataResult.Ok -> {
+ daemon.setAccount(accountToken)
+ true
+ }
+ else -> false
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
index a906b9a9c9..fe1ba2bc71 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn
-import net.mullvad.mullvadvpn.model.AccountData
import net.mullvad.mullvadvpn.model.AppVersionInfo
import net.mullvad.mullvadvpn.model.GeoIpLocation
+import net.mullvad.mullvadvpn.model.GetAccountDataResult
import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.PublicKey
import net.mullvad.mullvadvpn.model.RelayList
@@ -28,7 +28,7 @@ class MullvadDaemon(val vpnService: MullvadVpnService) {
external fun connect()
external fun disconnect()
external fun generateWireguardKey(): KeygenEvent?
- external fun getAccountData(accountToken: String): AccountData?
+ external fun getAccountData(accountToken: String): GetAccountDataResult
external fun getCurrentLocation(): GeoIpLocation?
external fun getCurrentVersion(): String
external fun getRelayLocations(): RelayList
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt
index 8494d8ff82..5a08abefc1 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt
@@ -6,6 +6,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.MullvadDaemon
+import net.mullvad.mullvadvpn.model.GetAccountDataResult
import org.joda.time.DateTime
import org.joda.time.format.DateTimeFormat
@@ -54,7 +55,12 @@ class AccountCache(val settingsListener: SettingsListener, val daemon: Deferred<
private fun fetchAccountExpiry() = GlobalScope.launch(Dispatchers.Default) {
val accountNumber = this@AccountCache.accountNumber
val accountData = accountNumber?.let { account ->
- daemon.await().getAccountData(account)
+ val result = daemon.await().getAccountData(account)
+
+ when (result) {
+ is GetAccountDataResult.Ok -> result.accountData
+ else -> null
+ }
}
synchronized(this@AccountCache) {