summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-02-12 14:42:35 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-02-15 18:47:22 +0000
commit5cc7ba9bb7f5e4432c3f67e792a24b4baf14535f (patch)
treef2cb96fcca809d40a43f36dba2db299094600445 /android/src/main
parent377def40946c239beae7246184f1e04d0ebe35da (diff)
downloadmullvadvpn-5cc7ba9bb7f5e4432c3f67e792a24b4baf14535f.tar.xz
mullvadvpn-5cc7ba9bb7f5e4432c3f67e792a24b4baf14535f.zip
Create an abstract `Message` class
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt25
1 files changed, 25 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt
new file mode 100644
index 0000000000..872acba8e7
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Message.kt
@@ -0,0 +1,25 @@
+package net.mullvad.mullvadvpn.ipc
+
+import android.os.Bundle
+import android.os.Message as RawMessage
+import android.os.Parcelable
+
+abstract class Message : Parcelable {
+ protected abstract val messageId: Int
+ protected abstract val messageKey: String
+
+ val message: RawMessage
+ get() = RawMessage.obtain().also { message ->
+ message.what = messageId
+ message.data = Bundle()
+ message.data.putParcelable(messageKey, this)
+ }
+
+ companion object {
+ internal fun <T : Parcelable> fromMessage(message: RawMessage, key: String): T? {
+ val data = message.data
+
+ return data.getParcelable(key)
+ }
+ }
+}