@@ -18,8 +18,8 @@ package im.vector.app.features.home.room.detail.timeline.helper
18
18
19
19
import im.vector.app.core.utils.TextUtils
20
20
import im.vector.app.features.voicebroadcast.STATE_ROOM_VOICE_BROADCAST_INFO
21
- import im.vector.app.features.voicebroadcast.model.MessageVoiceBroadcastInfoContent
22
21
import im.vector.app.features.voicebroadcast.model.VoiceBroadcastState
22
+ import im.vector.app.features.voicebroadcast.model.asVoiceBroadcastEvent
23
23
import org.matrix.android.sdk.api.extensions.orFalse
24
24
import org.matrix.android.sdk.api.session.events.model.EventType
25
25
import org.matrix.android.sdk.api.session.events.model.toModel
@@ -59,12 +59,7 @@ class TimelineEventsGroups {
59
59
val content = root.getClearContent()
60
60
return when {
61
61
EventType .isCallEvent(type) -> (content?.get(" call_id" ) as ? String )
62
- type == STATE_ROOM_VOICE_BROADCAST_INFO -> {
63
- root.content.toModel<MessageVoiceBroadcastInfoContent >()
64
- ?.takeUnless { it.voiceBroadcastState == VoiceBroadcastState .STARTED }
65
- ?.relatesTo?.eventId
66
- ? : eventId
67
- }
62
+ type == STATE_ROOM_VOICE_BROADCAST_INFO -> root.asVoiceBroadcastEvent()?.reference?.eventId
68
63
type == EventType .STATE_ROOM_WIDGET || type == EventType .STATE_ROOM_WIDGET_LEGACY -> root.stateKey
69
64
else -> {
70
65
null
@@ -140,8 +135,7 @@ class CallSignalingEventsGroup(private val group: TimelineEventsGroup) {
140
135
141
136
class VoiceBroadcastEventsGroup (private val group : TimelineEventsGroup ) {
142
137
fun getLastEvent (): TimelineEvent {
143
- return group.events
144
- .find { it.root.getClearContent().toModel<MessageVoiceBroadcastInfoContent >()?.voiceBroadcastState == VoiceBroadcastState .STOPPED }
138
+ return group.events.find { it.root.asVoiceBroadcastEvent()?.content?.voiceBroadcastState == VoiceBroadcastState .STOPPED }
145
139
? : group.events.maxBy { it.root.originServerTs ? : 0L }
146
140
}
147
141
}
0 commit comments