summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/KeyStatusListener.kt12
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/util/EventNotifier.kt6
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)
+ }
}