Merge pull request #5089 from vector-im/feature/dla/fix_incorrect_call_status

CallTileTimelineItem.CallStatus.MISSED renders both missed and reject…
This commit is contained in:
Benoit Marty 2022-02-02 12:06:11 +01:00 committed by GitHub
commit 54fb28c912
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 6 deletions

1
changelog.d/5088.bugfix Normal file
View File

@ -0,0 +1 @@
Fixes call statuses in the timeline for missed/rejected calls and connected calls.

View File

@ -101,7 +101,11 @@ class CallItemFactory @Inject constructor(
createCallTileTimelineItem(
roomSummary = roomSummary,
callId = callEventGrouper.callId,
callStatus = if (callEventGrouper.callWasMissed()) CallTileTimelineItem.CallStatus.MISSED else CallTileTimelineItem.CallStatus.ENDED,
callStatus = if (callEventGrouper.callWasAnswered()) {
CallTileTimelineItem.CallStatus.ENDED
} else {
CallTileTimelineItem.CallStatus.MISSED
},
callKind = callKind,
callback = params.callback,
highlight = params.isHighlighted,

View File

@ -108,11 +108,8 @@ class CallSignalingEventsGroup(private val group: TimelineEventsGroup) {
}
}
/**
* Returns true if there are only events from one side.
*/
fun callWasMissed(): Boolean {
return group.events.distinctBy { it.senderInfo.userId }.size == 1
fun callWasAnswered(): Boolean {
return getAnswer() != null
}
private fun getAnswer(): TimelineEvent? {