diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt | 22 |
1 files changed, 22 insertions, 0 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 new file mode 100644 index 0000000000..a2e1d6d79b --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/WwwAuthTokenRetriever.kt @@ -0,0 +1,22 @@ +package net.mullvad.mullvadvpn.dataproxy + +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import net.mullvad.mullvadvpn.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() + // returning an empty string is valid in case of any failures + return daemon?.getWwwAuthToken() ?: "" + } +} |
