summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-14 18:24:48 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-29 14:22:55 +0000
commitfc1f64225a976e6a5d357787dc6ed60f25377f0c (patch)
tree35ffef70f6128e6850e29b8757cee7725e7fc5a0 /android/src
parente0b414df08d5f5c4ee09b2b8d13248ee9bbcdee3 (diff)
downloadmullvadvpn-fc1f64225a976e6a5d357787dc6ed60f25377f0c.tar.xz
mullvadvpn-fc1f64225a976e6a5d357787dc6ed60f25377f0c.zip
Create UI-side `KeyStatusListener` class
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/KeyStatusListener.kt33
1 files changed, 33 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/KeyStatusListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/KeyStatusListener.kt
new file mode 100644
index 0000000000..7f7425e9c7
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/KeyStatusListener.kt
@@ -0,0 +1,33 @@
+package net.mullvad.mullvadvpn.ui.serviceconnection
+
+import android.os.Messenger
+import net.mullvad.mullvadvpn.ipc.DispatchingHandler
+import net.mullvad.mullvadvpn.ipc.Event
+import net.mullvad.mullvadvpn.ipc.Request
+import net.mullvad.mullvadvpn.model.KeygenEvent
+import net.mullvad.talpid.util.EventNotifier
+
+class KeyStatusListener(val connection: Messenger, val eventDispatcher: DispatchingHandler<Event>) {
+ val onKeyStatusChange = EventNotifier<KeygenEvent?>(null)
+
+ var keyStatus by onKeyStatusChange.notifiable()
+ private set
+
+ init {
+ eventDispatcher.registerHandler(Event.WireGuardKeyStatus::class) { event ->
+ keyStatus = event.keyStatus
+ }
+ }
+
+ fun generateKey() {
+ connection.send(Request.WireGuardGenerateKey.message)
+ }
+
+ fun verifyKey() {
+ connection.send(Request.WireGuardVerifyKey.message)
+ }
+
+ fun onDestroy() {
+ onKeyStatusChange.unsubscribeAll()
+ }
+}