summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt18
1 files changed, 7 insertions, 11 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt
index 75e138050d..302cb095e9 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt
@@ -7,9 +7,7 @@ import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.talpid.util.EventNotifier
class KeyStatusListener(val daemon: MullvadDaemon) {
- private val setUpJob = setUp()
-
- val onKeyStatusChange = EventNotifier<KeygenEvent?>(null)
+ val onKeyStatusChange = EventNotifier(getInitialKeyStatus())
var keyStatus: KeygenEvent? = null
private set(value) {
@@ -17,16 +15,17 @@ class KeyStatusListener(val daemon: MullvadDaemon) {
value?.let { newKeyStatus -> onKeyStatusChange.notify(newKeyStatus) }
}
- private fun setUp() = GlobalScope.launch(Dispatchers.Default) {
+ init {
daemon.onKeygenEvent = { event -> keyStatus = event }
- val wireguardKey = daemon.getWireguardKey()
- if (wireguardKey != null) {
- keyStatus = KeygenEvent.NewKey(wireguardKey, null, null)
+ }
+
+ private fun getInitialKeyStatus(): KeygenEvent? {
+ return daemon.getWireguardKey()?.let { wireguardKey ->
+ KeygenEvent.NewKey(wireguardKey, null, null)
}
}
fun generateKey() = GlobalScope.launch(Dispatchers.Default) {
- setUpJob.join()
val oldStatus = keyStatus
val newStatus = daemon.generateWireguardKey()
val newFailure = newStatus?.failure()
@@ -40,7 +39,6 @@ class KeyStatusListener(val daemon: MullvadDaemon) {
}
fun verifyKey() = GlobalScope.launch(Dispatchers.Default) {
- setUpJob.join()
val verified = daemon.verifyWireguardKey()
// Only update verification status if the key is actually there
when (val state = keyStatus) {
@@ -53,13 +51,11 @@ class KeyStatusListener(val daemon: MullvadDaemon) {
}
fun onDestroy() {
- setUpJob.cancel()
daemon.onKeygenEvent = null
onKeyStatusChange.unsubscribeAll()
}
private fun retryKeyGeneration() = GlobalScope.launch(Dispatchers.Default) {
- setUpJob.join()
keyStatus = daemon.generateWireguardKey()
}
}