diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt | 12 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt | 6 |
2 files changed, 12 insertions, 6 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 302cb095e9..e3b6f56d0d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt @@ -9,14 +9,14 @@ import net.mullvad.talpid.util.EventNotifier class KeyStatusListener(val daemon: MullvadDaemon) { val onKeyStatusChange = EventNotifier(getInitialKeyStatus()) - var keyStatus: KeygenEvent? = null - private set(value) { - field = value - value?.let { newKeyStatus -> onKeyStatusChange.notify(newKeyStatus) } - } + var keyStatus by onKeyStatusChange.notifiable() init { - daemon.onKeygenEvent = { event -> keyStatus = event } + daemon.onKeygenEvent = { event -> + if (event != null) { + keyStatus = event + } + } } private fun getInitialKeyStatus(): KeygenEvent? { diff --git a/android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt b/android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt index bcd27820b8..395146b168 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt @@ -1,5 +1,7 @@ package net.mullvad.talpid.util +import kotlin.properties.Delegates.observable + // Manages listeners interested in receiving events of type T // // The listeners subscribe using an ID object. This ID is used later on for unsubscribing. The only @@ -47,4 +49,8 @@ class EventNotifier<T>(private val initialValue: T) { listeners.clear() } } + + fun notifiable() = observable(latestEvent) { _, _, newValue -> + notify(newValue) + } } |
