2018-10-22 17:36:29 +00:00
|
|
|
package im.vector.matrix.android.api.session.events.model
|
|
|
|
|
2018-10-31 12:03:36 +00:00
|
|
|
import im.vector.matrix.android.api.session.room.model.RoomMember
|
|
|
|
|
2018-10-23 16:25:28 +00:00
|
|
|
data class EnrichedEvent(val root: Event) {
|
2018-10-22 17:36:29 +00:00
|
|
|
|
2018-10-31 10:22:42 +00:00
|
|
|
val metadata = HashMap<String, Any>()
|
2018-10-22 17:36:29 +00:00
|
|
|
|
2018-11-14 18:32:42 +00:00
|
|
|
fun enrichWith(key: String?, data: Any?) {
|
|
|
|
if (key == null || data == null) {
|
2018-10-22 17:36:29 +00:00
|
|
|
return
|
|
|
|
}
|
2018-10-31 10:22:42 +00:00
|
|
|
if (!metadata.containsKey(key)) {
|
|
|
|
metadata[key] = data
|
|
|
|
}
|
2018-10-22 17:36:29 +00:00
|
|
|
}
|
|
|
|
|
2018-10-31 10:22:42 +00:00
|
|
|
inline fun <reified T> getMetadata(key: String): T? {
|
|
|
|
return metadata[key] as T?
|
2018-10-22 17:36:29 +00:00
|
|
|
}
|
|
|
|
|
2018-10-31 10:22:42 +00:00
|
|
|
companion object {
|
|
|
|
const val IS_LAST_EVENT = "IS_LAST_EVENT"
|
|
|
|
const val READ_RECEIPTS = "READ_RECEIPTS"
|
2018-10-22 17:36:29 +00:00
|
|
|
}
|
|
|
|
|
2018-10-31 12:03:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fun EnrichedEvent.roomMember(): RoomMember? {
|
2018-11-14 18:32:42 +00:00
|
|
|
return getMetadata<RoomMember>(EventType.STATE_ROOM_MEMBER)
|
2018-10-31 12:03:36 +00:00
|
|
|
}
|