mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 01:19:33 +00:00
Bugfix : fix timeline not showing sender info when room is marked as direct but not a 1:1 room #2530
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
Fix timeline not showing sender info when room is marked as direct but not a 1:1 room.
|
||||||
+2
-1
@@ -94,6 +94,7 @@ class TimelinePresenter @AssistedInject constructor(
|
|||||||
val timelineItems by timelineItemsFactory.collectItemsAsState()
|
val timelineItems by timelineItemsFactory.collectItemsAsState()
|
||||||
val paginationState by timeline.paginationState.collectAsState()
|
val paginationState by timeline.paginationState.collectAsState()
|
||||||
val syncUpdateFlow = room.syncUpdateFlow.collectAsState()
|
val syncUpdateFlow = room.syncUpdateFlow.collectAsState()
|
||||||
|
|
||||||
val userHasPermissionToSendMessage by room.canSendMessageAsState(type = MessageEventType.ROOM_MESSAGE, updateKey = syncUpdateFlow.value)
|
val userHasPermissionToSendMessage by room.canSendMessageAsState(type = MessageEventType.ROOM_MESSAGE, updateKey = syncUpdateFlow.value)
|
||||||
val userHasPermissionToSendReaction by room.canSendMessageAsState(type = MessageEventType.REACTION, 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 {
|
val timelineRoomInfo by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
TimelineRoomInfo(
|
TimelineRoomInfo(
|
||||||
isDirect = room.isDirect,
|
isDM = room.isDm,
|
||||||
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||||
userHasPermissionToSendReaction = userHasPermissionToSendReaction,
|
userHasPermissionToSendReaction = userHasPermissionToSendReaction,
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -38,7 +38,7 @@ data class TimelineState(
|
|||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class TimelineRoomInfo(
|
data class TimelineRoomInfo(
|
||||||
val isDirect: Boolean,
|
val isDM: Boolean,
|
||||||
val userHasPermissionToSendMessage: Boolean,
|
val userHasPermissionToSendMessage: Boolean,
|
||||||
val userHasPermissionToSendReaction: Boolean,
|
val userHasPermissionToSendReaction: Boolean,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -235,10 +235,10 @@ internal fun aGroupedEvents(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun aTimelineRoomInfo(
|
internal fun aTimelineRoomInfo(
|
||||||
isDirect: Boolean = false,
|
isDM: Boolean = false,
|
||||||
userHasPermissionToSendMessage: Boolean = true,
|
userHasPermissionToSendMessage: Boolean = true,
|
||||||
) = TimelineRoomInfo(
|
) = TimelineRoomInfo(
|
||||||
isDirect = isDirect,
|
isDM = isDM,
|
||||||
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||||
userHasPermissionToSendReaction = true,
|
userHasPermissionToSendReaction = true,
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -160,7 +160,7 @@ fun TimelineView(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (state.paginationState.beginningOfRoomReached && !state.timelineRoomInfo.isDirect) {
|
if (state.paginationState.beginningOfRoomReached && !state.timelineRoomInfo.isDM) {
|
||||||
item(contentType = "BeginningOfRoomReached") {
|
item(contentType = "BeginningOfRoomReached") {
|
||||||
TimelineItemRoomBeginningView(roomName = roomName)
|
TimelineItemRoomBeginningView(roomName = roomName)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -95,7 +95,7 @@ fun MessageEventBubble(
|
|||||||
fun Modifier.offsetForItem(): Modifier {
|
fun Modifier.offsetForItem(): Modifier {
|
||||||
return when {
|
return when {
|
||||||
state.isMine -> this
|
state.isMine -> this
|
||||||
state.timelineRoomInfo.isDirect -> this
|
state.timelineRoomInfo.isDM -> this
|
||||||
else -> offset(x = BUBBLE_INCOMING_OFFSET)
|
else -> offset(x = BUBBLE_INCOMING_OFFSET)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -301,7 +301,7 @@ private fun TimelineItemEventRowContent(
|
|||||||
|
|
||||||
// Sender
|
// Sender
|
||||||
val avatarStrokeSize = 3.dp
|
val avatarStrokeSize = 3.dp
|
||||||
if (event.showSenderInformation && !timelineRoomInfo.isDirect) {
|
if (event.showSenderInformation && !timelineRoomInfo.isDM) {
|
||||||
MessageSenderInformation(
|
MessageSenderInformation(
|
||||||
event.safeSenderName,
|
event.safeSenderName,
|
||||||
event.senderAvatar,
|
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)
|
// In design we want a offset of 6.dp compare to the bubble, so start is 22.dp (16 + 6)
|
||||||
start = when {
|
start = when {
|
||||||
event.isMine -> 22.dp
|
event.isMine -> 22.dp
|
||||||
timelineRoomInfo.isDirect -> 22.dp
|
timelineRoomInfo.isDM -> 22.dp
|
||||||
else -> 22.dp + BUBBLE_INCOMING_OFFSET
|
else -> 22.dp + BUBBLE_INCOMING_OFFSET
|
||||||
},
|
},
|
||||||
end = 16.dp
|
end = 16.dp
|
||||||
|
|||||||
+2
-2
@@ -41,7 +41,7 @@ internal fun TimelineItemEventRowForDirectRoomPreview() = ElementPreview {
|
|||||||
groupPosition = TimelineItemGroupPosition.First,
|
groupPosition = TimelineItemGroupPosition.First,
|
||||||
),
|
),
|
||||||
timelineRoomInfo = aTimelineRoomInfo(
|
timelineRoomInfo = aTimelineRoomInfo(
|
||||||
isDirect = true,
|
isDM = true,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
ATimelineItemEventRow(
|
ATimelineItemEventRow(
|
||||||
@@ -53,7 +53,7 @@ internal fun TimelineItemEventRowForDirectRoomPreview() = ElementPreview {
|
|||||||
groupPosition = TimelineItemGroupPosition.Last,
|
groupPosition = TimelineItemGroupPosition.Last,
|
||||||
),
|
),
|
||||||
timelineRoomInfo = aTimelineRoomInfo(
|
timelineRoomInfo = aTimelineRoomInfo(
|
||||||
isDirect = true,
|
isDM = true,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user