Merge pull request #6603 from element-hq/valere/call/fix_join_button_on_several_items

cleaning: Remove join button from call notify timelineItemView
This commit is contained in:
Valere Fedronic 2026-04-21 11:56:38 +02:00 committed by GitHub
commit b080c01388
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 50 additions and 56 deletions

View file

@ -12,6 +12,7 @@ import androidx.compose.runtime.Immutable
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.media.ImageInfo
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.api.notification.CallIntent
import io.element.android.libraries.matrix.api.poll.PollAnswer
import io.element.android.libraries.matrix.api.poll.PollKind
import io.element.android.libraries.matrix.api.room.location.AssetType
@ -117,6 +118,8 @@ data class LiveLocationContent(
data object LegacyCallInviteContent : EventContent
data object CallNotifyContent : EventContent
data class CallNotifyContent(
val callIntent: CallIntent
) : EventContent
data object UnknownContent : EventContent

View file

@ -11,6 +11,7 @@ package io.element.android.libraries.matrix.impl.timeline.item.event
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.matrix.api.core.ThreadId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.notification.CallIntent
import io.element.android.libraries.matrix.api.room.location.LiveLocationInfo
import io.element.android.libraries.matrix.api.timeline.item.EmbeddedEventInfo
import io.element.android.libraries.matrix.api.timeline.item.EventThreadInfo
@ -147,7 +148,13 @@ class TimelineEventContentMapper(
)
}
is TimelineItemContent.CallInvite -> LegacyCallInviteContent
is TimelineItemContent.RtcNotification -> CallNotifyContent
is TimelineItemContent.RtcNotification -> CallNotifyContent(
callIntent = if (it.callIntent == "audio") {
CallIntent.AUDIO
} else {
CallIntent.VIDEO
}
)
}
}
}

View file

@ -65,7 +65,7 @@ class EventItemFactory(
mode = DateFormatterMode.Full,
)
return when (val content = event.content) {
CallNotifyContent,
is CallNotifyContent,
is FailedToParseMessageLikeContent,
is FailedToParseStateContent,
LegacyCallInviteContent,

View file

@ -18,6 +18,7 @@ import io.element.android.libraries.matrix.api.media.FileInfo
import io.element.android.libraries.matrix.api.media.ImageInfo
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.api.media.VideoInfo
import io.element.android.libraries.matrix.api.notification.CallIntent
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.CallNotifyContent
@ -61,7 +62,7 @@ class DefaultEventItemFactoryTest {
fun `create check all null cases`() {
val factory = createEventItemFactory()
val contents = listOf(
CallNotifyContent,
CallNotifyContent(callIntent = CallIntent.VIDEO),
FailedToParseMessageLikeContent("", ""),
FailedToParseStateContent("", "", ""),
LegacyCallInviteContent,