diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-01 17:01:58 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-01 18:02:12 +0000 |
| commit | ab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac (patch) | |
| tree | d1d66a321e6328ed2f57dd42f2384a933306a23d | |
| parent | b9c34220bfcd1239e40fb97b14da1b712f6a1c79 (diff) | |
| download | mullvadvpn-ab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac.tar.xz mullvadvpn-ab0b90c1cf48b7043ec9f3bd5d167ac9ac16e2ac.zip | |
Refactor `KeyStatusListener` to remove `setUpJob`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt | 18 |
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() } } |
