summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-11 23:38:42 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-01-07 14:03:29 +0000
commite707a93c064909ba011894d4a09c095dd5d86fa8 (patch)
tree35b2c72013193474b6a6b39d7f19d67c959f3520 /android
parent8dc89d4ee26e3eac522dc7b43dae3b9cb9245a63 (diff)
downloadmullvadvpn-e707a93c064909ba011894d4a09c095dd5d86fa8.tar.xz
mullvadvpn-e707a93c064909ba011894d4a09c095dd5d86fa8.zip
Fetch WWW auth. token in the background
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt16
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt2
3 files changed, 6 insertions, 14 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt
index 41f778c349..cc633f0b22 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt
@@ -3,20 +3,12 @@ package net.mullvad.mullvadvpn.dataproxy
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
+import kotlinx.coroutines.async
import net.mullvad.mullvadvpn.service.MullvadDaemon
-class WwwAuthTokenRetriever(val asyncDaemon: Deferred<MullvadDaemon>) {
- private var daemon: MullvadDaemon? = null
- private val setUpJob = setUp()
-
- private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
- daemon = asyncDaemon.await()
- }
-
- suspend fun getAuthToken(): String {
- setUpJob.join()
+class WwwAuthTokenRetriever(val daemon: Deferred<MullvadDaemon>) {
+ suspend fun getAuthToken() = GlobalScope.async(Dispatchers.Default) {
// returning an empty string is valid in case of any failures
- return daemon?.getWwwAuthToken() ?: ""
+ daemon.await().getWwwAuthToken()
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
index 43805321aa..fad7f63011 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/NotificationBanner.kt
@@ -62,7 +62,7 @@ class NotificationBanner(
override fun onClick(): Job {
return GlobalScope.launch(Dispatchers.Main) {
- val token = authTokenRetriever.getAuthToken()
+ val token = authTokenRetriever.getAuthToken().await()
val url = Uri.parse(keyManagementUrl + "?token=" + token)
context.startActivity(Intent(Intent.ACTION_VIEW, url))
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
index 7bf8174ebe..f0e89a9328 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
@@ -85,7 +85,7 @@ class WireguardKeyFragment : ServiceDependentFragment() {
override fun onClick(): Job {
return GlobalScope.launch(Dispatchers.Default) {
- val token = wwwAuthTokenRetriever.getAuthToken()
+ val token = wwwAuthTokenRetriever.getAuthToken().await()
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse(keyUrl + "?token=" + token))
startActivity(intent)