Add threadInfo field to message like timeline events (#5930)
* Add `threadInfo` field to message like timeline events: - Polls - Stickers - UTDs * Add missing cases for `EventTimeline.threadInfo()`
This commit is contained in:
parent
1d0b493869
commit
105bab1758
10 changed files with 87 additions and 44 deletions
|
|
@ -26,7 +26,7 @@ data class MessageContent(
|
|||
val inReplyTo: InReplyTo?,
|
||||
val isEdited: Boolean,
|
||||
val threadInfo: EventThreadInfo?,
|
||||
val type: MessageType
|
||||
val type: MessageType,
|
||||
) : EventContent
|
||||
|
||||
data object RedactedContent : EventContent
|
||||
|
|
@ -36,6 +36,7 @@ data class StickerContent(
|
|||
val body: String?,
|
||||
val info: ImageInfo,
|
||||
val source: MediaSource,
|
||||
val threadInfo: EventThreadInfo?,
|
||||
) : EventContent {
|
||||
val bestDescription: String
|
||||
get() = body ?: filename
|
||||
|
|
@ -49,10 +50,12 @@ data class PollContent(
|
|||
val votes: ImmutableMap<String, ImmutableList<UserId>>,
|
||||
val endTime: ULong?,
|
||||
val isEdited: Boolean,
|
||||
val threadInfo: EventThreadInfo?,
|
||||
) : EventContent
|
||||
|
||||
data class UnableToDecryptContent(
|
||||
val data: Data
|
||||
val data: Data,
|
||||
val threadInfo: EventThreadInfo?,
|
||||
) : EventContent {
|
||||
@Immutable
|
||||
sealed interface Data {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,13 @@ data class EventTimelineItem(
|
|||
return (content as? MessageContent)?.inReplyTo
|
||||
}
|
||||
|
||||
fun threadInfo(): EventThreadInfo? = (content as? MessageContent)?.threadInfo
|
||||
fun threadInfo(): EventThreadInfo? = when (content) {
|
||||
is MessageContent -> content.threadInfo
|
||||
is PollContent -> content.threadInfo
|
||||
is StickerContent -> content.threadInfo
|
||||
is UnableToDecryptContent -> content.threadInfo
|
||||
else -> null
|
||||
}
|
||||
|
||||
fun hasNotLoadedInReplyTo(): Boolean {
|
||||
val details = inReplyTo()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue