Timeline: quickly integreate sender profile
This commit is contained in:
parent
ce1c903ddd
commit
0f6744ab74
1 changed files with 17 additions and 2 deletions
|
|
@ -26,6 +26,7 @@ import io.element.android.libraries.matrix.core.EventId
|
||||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||||
import io.element.android.libraries.matrix.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.timeline.MatrixTimelineItem
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
import org.matrix.rustcomponents.sdk.ProfileTimelineDetails
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class TimelineItemEventFactory @Inject constructor(
|
class TimelineItemEventFactory @Inject constructor(
|
||||||
|
|
@ -41,8 +42,22 @@ class TimelineItemEventFactory @Inject constructor(
|
||||||
val currentSender = currentTimelineItem.event.sender()
|
val currentSender = currentTimelineItem.event.sender()
|
||||||
val groupPosition =
|
val groupPosition =
|
||||||
computeGroupPosition(currentTimelineItem, timelineItems, index)
|
computeGroupPosition(currentTimelineItem, timelineItems, index)
|
||||||
val senderDisplayName = room.userDisplayName(currentSender).getOrNull()
|
val senderDisplayName: String?
|
||||||
val senderAvatarUrl = room.userAvatarUrl(currentSender).getOrNull()
|
val senderAvatarUrl: String?
|
||||||
|
|
||||||
|
when (val senderProfile = currentTimelineItem.event.senderProfile()) {
|
||||||
|
ProfileTimelineDetails.Unavailable,
|
||||||
|
ProfileTimelineDetails.Pending,
|
||||||
|
is ProfileTimelineDetails.Error -> {
|
||||||
|
senderDisplayName = null
|
||||||
|
senderAvatarUrl = null
|
||||||
|
}
|
||||||
|
is ProfileTimelineDetails.Ready -> {
|
||||||
|
senderDisplayName = senderProfile.displayName
|
||||||
|
senderAvatarUrl = senderProfile.avatarUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val senderAvatarData = AvatarData(
|
val senderAvatarData = AvatarData(
|
||||||
name = senderDisplayName ?: currentSender,
|
name = senderDisplayName ?: currentSender,
|
||||||
url = senderAvatarUrl,
|
url = senderAvatarUrl,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue