diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-12 14:42:35 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-15 18:47:22 +0000 |
| commit | 5cc7ba9bb7f5e4432c3f67e792a24b4baf14535f (patch) | |
| tree | f2cb96fcca809d40a43f36dba2db299094600445 /android/src/main | |
| parent | 377def40946c239beae7246184f1e04d0ebe35da (diff) | |
| download | mullvadvpn-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.kt | 25 |
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) + } + } +} |
