Merge pull request #2537 from element-hq/feature/fga/fix_timeline_is_direct
Bugfix : fix timeline not showing sender info
This commit is contained in:
commit
f1730a1514
8 changed files with 12 additions and 10 deletions
1
changelog.d/2530.bugfix
Normal file
1
changelog.d/2530.bugfix
Normal file
|
|
@ -0,0 +1 @@
|
|||
Fix timeline not showing sender info when room is marked as direct but not a 1:1 room.
|
||||
|
|
@ -94,6 +94,7 @@ class TimelinePresenter @AssistedInject constructor(
|
|||
val timelineItems by timelineItemsFactory.collectItemsAsState()
|
||||
val paginationState by timeline.paginationState.collectAsState()
|
||||
val syncUpdateFlow = room.syncUpdateFlow.collectAsState()
|
||||
|
||||
val userHasPermissionToSendMessage by room.canSendMessageAsState(type = MessageEventType.ROOM_MESSAGE, updateKey = syncUpdateFlow.value)
|
||||
val userHasPermissionToSendReaction by room.canSendMessageAsState(type = MessageEventType.REACTION, updateKey = syncUpdateFlow.value)
|
||||
|
||||
|
|
@ -170,7 +171,7 @@ class TimelinePresenter @AssistedInject constructor(
|
|||
val timelineRoomInfo by remember {
|
||||
derivedStateOf {
|
||||
TimelineRoomInfo(
|
||||
isDirect = room.isDirect,
|
||||
isDm = room.isDm,
|
||||
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||
userHasPermissionToSendReaction = userHasPermissionToSendReaction,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ data class TimelineState(
|
|||
|
||||
@Immutable
|
||||
data class TimelineRoomInfo(
|
||||
val isDirect: Boolean,
|
||||
val isDm: Boolean,
|
||||
val userHasPermissionToSendMessage: Boolean,
|
||||
val userHasPermissionToSendReaction: Boolean,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -235,10 +235,10 @@ internal fun aGroupedEvents(
|
|||
}
|
||||
|
||||
internal fun aTimelineRoomInfo(
|
||||
isDirect: Boolean = false,
|
||||
isDm: Boolean = false,
|
||||
userHasPermissionToSendMessage: Boolean = true,
|
||||
) = TimelineRoomInfo(
|
||||
isDirect = isDirect,
|
||||
isDm = isDm,
|
||||
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||
userHasPermissionToSendReaction = true,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ fun TimelineView(
|
|||
}
|
||||
}
|
||||
}
|
||||
if (state.paginationState.beginningOfRoomReached && !state.timelineRoomInfo.isDirect) {
|
||||
if (state.paginationState.beginningOfRoomReached && !state.timelineRoomInfo.isDm) {
|
||||
item(contentType = "BeginningOfRoomReached") {
|
||||
TimelineItemRoomBeginningView(roomName = roomName)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ fun MessageEventBubble(
|
|||
fun Modifier.offsetForItem(): Modifier {
|
||||
return when {
|
||||
state.isMine -> this
|
||||
state.timelineRoomInfo.isDirect -> this
|
||||
state.timelineRoomInfo.isDm -> this
|
||||
else -> offset(x = BUBBLE_INCOMING_OFFSET)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ private fun TimelineItemEventRowContent(
|
|||
|
||||
// Sender
|
||||
val avatarStrokeSize = 3.dp
|
||||
if (event.showSenderInformation && !timelineRoomInfo.isDirect) {
|
||||
if (event.showSenderInformation && !timelineRoomInfo.isDm) {
|
||||
MessageSenderInformation(
|
||||
event.safeSenderName,
|
||||
event.senderAvatar,
|
||||
|
|
@ -371,7 +371,7 @@ private fun TimelineItemEventRowContent(
|
|||
// In design we want a offset of 6.dp compare to the bubble, so start is 22.dp (16 + 6)
|
||||
start = when {
|
||||
event.isMine -> 22.dp
|
||||
timelineRoomInfo.isDirect -> 22.dp
|
||||
timelineRoomInfo.isDm -> 22.dp
|
||||
else -> 22.dp + BUBBLE_INCOMING_OFFSET
|
||||
},
|
||||
end = 16.dp
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ internal fun TimelineItemEventRowForDirectRoomPreview() = ElementPreview {
|
|||
groupPosition = TimelineItemGroupPosition.First,
|
||||
),
|
||||
timelineRoomInfo = aTimelineRoomInfo(
|
||||
isDirect = true,
|
||||
isDm = true,
|
||||
),
|
||||
)
|
||||
ATimelineItemEventRow(
|
||||
|
|
@ -53,7 +53,7 @@ internal fun TimelineItemEventRowForDirectRoomPreview() = ElementPreview {
|
|||
groupPosition = TimelineItemGroupPosition.Last,
|
||||
),
|
||||
timelineRoomInfo = aTimelineRoomInfo(
|
||||
isDirect = true,
|
||||
isDm = true,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue