Fixed hidden last message(s) of conversation

This commit is contained in:
Sylvain Berfini 2023-10-12 17:30:04 +02:00
parent db5ea158c3
commit 2cef7980ea

View file

@ -256,6 +256,29 @@ class ConversationViewModel @UiThread constructor() : ViewModel() {
chatRoom.markAsRead()
}
@WorkerThread
private fun processGroupedEvents(groupedEventLogs: ArrayList<EventLog>, isGroupChatRoom: Boolean): ArrayList<EventLogModel> {
val eventsList = arrayListOf<EventLogModel>()
// Handle all events in group, then re-start a new group with current item
var index = 0
for (groupedEvent in groupedEventLogs) {
val avatar = getAvatarModelForAddress(groupedEvent.chatMessage?.fromAddress)
val model = EventLogModel(
groupedEvent,
avatar,
isGroupChatRoom,
index > 0,
index == groupedEventLogs.size - 1
)
eventsList.add(model)
index += 1
}
return eventsList
}
@WorkerThread
private fun getEventsListFromHistory(history: Array<EventLog>, isGroupChatRoom: Boolean): ArrayList<EventLogModel> {
val eventsList = arrayListOf<EventLogModel>()
@ -270,27 +293,18 @@ class ConversationViewModel @UiThread constructor() : ViewModel() {
val groupEvents = shouldWeGroupTwoEvents(event, previousGroupEvent)
if (!groupEvents) {
// Handle all events in group, then re-start a new group with current item
var index = 0
for (groupedEvent in groupedEventLogs) {
val avatar = getAvatarModelForAddress(groupedEvent.chatMessage?.fromAddress)
val model = EventLogModel(
groupedEvent,
avatar,
isGroupChatRoom,
index > 0,
index == groupedEventLogs.size - 1
)
eventsList.add(model)
index += 1
}
eventsList.addAll(processGroupedEvents(groupedEventLogs, isGroupChatRoom))
groupedEventLogs.clear()
}
groupedEventLogs.add(event)
}
if (groupedEventLogs.isNotEmpty()) {
eventsList.addAll(processGroupedEvents(groupedEventLogs, isGroupChatRoom))
groupedEventLogs.clear()
}
return eventsList
}