diff options
Diffstat (limited to 'android')
| -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) + } + } +} |
