summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-01 17:01:58 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-01 18:02:12 +0000
commitab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac (patch)
treed1d66a321e6328ed2f57dd42f2384a933306a23d
parentb9c34220bfcd1239e40fb97b14da1b712f6a1c79 (diff)
downloadmullvadvpn-ab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac.tar.xz
mullvadvpn-ab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac.zip
Refactor `KeyStatusListener` to remove `setUpJob`
-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()
}
}