@@ -43,7 +43,9 @@ import im.vector.app.features.home.room.detail.timeline.helper.ContentUploadStat
43
43
import im.vector.app.features.home.room.detail.timeline.helper.LocationPinProvider
44
44
import im.vector.app.features.home.room.detail.timeline.helper.MessageInformationDataFactory
45
45
import im.vector.app.features.home.room.detail.timeline.helper.MessageItemAttributesFactory
46
+ import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventsGroup
46
47
import im.vector.app.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider
48
+ import im.vector.app.features.home.room.detail.timeline.helper.VoiceBroadcastEventsGroup
47
49
import im.vector.app.features.home.room.detail.timeline.item.AbsMessageItem
48
50
import im.vector.app.features.home.room.detail.timeline.item.MessageAudioItem
49
51
import im.vector.app.features.home.room.detail.timeline.item.MessageAudioItem_
@@ -81,6 +83,7 @@ import im.vector.app.features.media.VideoContentRenderer
81
83
import im.vector.app.features.settings.VectorPreferences
82
84
import im.vector.app.features.voice.AudioWaveformView
83
85
import im.vector.app.features.voicebroadcast.model.MessageVoiceBroadcastInfoContent
86
+ import im.vector.app.features.voicebroadcast.model.VoiceBroadcastState
84
87
import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence
85
88
import me.gujun.android.span.span
86
89
import org.matrix.android.sdk.api.MatrixUrls.isMxcUrl
@@ -200,7 +203,7 @@ class MessageItemFactory @Inject constructor(
200
203
is MessagePollContent -> buildPollItem(messageContent, informationData, highlight, callback, attributes)
201
204
is MessageLocationContent -> buildLocationItem(messageContent, informationData, highlight, attributes)
202
205
is MessageBeaconInfoContent -> liveLocationShareMessageItemFactory.create(params.event, highlight, attributes)
203
- is MessageVoiceBroadcastInfoContent -> buildVoiceBroadcastItem(messageContent, highlight, callback, attributes)
206
+ is MessageVoiceBroadcastInfoContent -> buildVoiceBroadcastItem(messageContent, params.eventsGroup, highlight, callback, attributes)
204
207
else -> buildNotHandledMessageItem(messageContent, informationData, highlight, callback, attributes)
205
208
}
206
209
return messageItem?.apply {
@@ -712,14 +715,19 @@ class MessageItemFactory @Inject constructor(
712
715
713
716
private fun buildVoiceBroadcastItem (
714
717
messageContent : MessageVoiceBroadcastInfoContent ,
718
+ eventsGroup : TimelineEventsGroup ? ,
715
719
highlight : Boolean ,
716
720
callback : TimelineEventController .Callback ? ,
717
721
attributes : AbsMessageItem .Attributes ,
718
722
): MessageVoiceBroadcastItem ? {
723
+ if (messageContent.voiceBroadcastState != VoiceBroadcastState .STARTED ) return null
724
+ val voiceBroadcastEventsGroup = eventsGroup?.let { VoiceBroadcastEventsGroup (it) } ? : return null
725
+ val mostRecentEvent = voiceBroadcastEventsGroup.getLastEvent()
726
+ val mostRecentMessageContent = (mostRecentEvent.getVectorLastMessageContent() as ? MessageVoiceBroadcastInfoContent ) ? : return null
719
727
return MessageVoiceBroadcastItem_ ()
720
728
.attributes(attributes)
721
729
.highlighted(highlight)
722
- .voiceBroadcastState(messageContent .voiceBroadcastState)
730
+ .voiceBroadcastState(mostRecentMessageContent .voiceBroadcastState)
723
731
.leftGuideline(avatarSizeProvider.leftGuideline)
724
732
.callback(callback)
725
733
}
0 commit comments