mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Fixed reply preview when a message has been deleted (locally or remotely)
This commit is contained in:
parent
8e76c60a38
commit
88e474533e
1 changed files with 21 additions and 12 deletions
|
|
@ -308,12 +308,7 @@ class ConversationViewModel
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
override fun onMessageRetracted(chatRoom: ChatRoom, message: ChatMessage) {
|
override fun onMessageRetracted(chatRoom: ChatRoom, message: ChatMessage) {
|
||||||
for (model in eventsList.reversed()) {
|
updateRepliesUpTo(message)
|
||||||
if (model.model is MessageModel && model.model.replyToMessageId == message.messageId) {
|
|
||||||
model.model.computeReplyInfo()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (message.isOutgoing) {
|
if (message.isOutgoing) {
|
||||||
messageDeletedEvent.postValue(Event(true))
|
messageDeletedEvent.postValue(Event(true))
|
||||||
|
|
@ -322,12 +317,7 @@ class ConversationViewModel
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
override fun onMessageContentEdited(chatRoom: ChatRoom, message: ChatMessage) {
|
override fun onMessageContentEdited(chatRoom: ChatRoom, message: ChatMessage) {
|
||||||
for (model in eventsList.reversed()) {
|
updateRepliesUpTo(message)
|
||||||
if (model.model is MessageModel && model.model.replyToMessageId == message.messageId) {
|
|
||||||
model.model.computeReplyInfo()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -464,7 +454,9 @@ class ConversationViewModel
|
||||||
|
|
||||||
Log.i("$TAG Removing chat message id [${chatMessageModel.id}] from events list")
|
Log.i("$TAG Removing chat message id [${chatMessageModel.id}] from events list")
|
||||||
list.remove(found)
|
list.remove(found)
|
||||||
|
|
||||||
eventsList = list
|
eventsList = list
|
||||||
|
|
||||||
updateEvents.postValue(Event(true))
|
updateEvents.postValue(Event(true))
|
||||||
isEmpty.postValue(eventsList.isEmpty())
|
isEmpty.postValue(eventsList.isEmpty())
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -476,6 +468,8 @@ class ConversationViewModel
|
||||||
Log.i("$TAG Deleting message id [${chatMessageModel.id}] from database")
|
Log.i("$TAG Deleting message id [${chatMessageModel.id}] from database")
|
||||||
chatRoom.deleteMessage(chatMessageModel.chatMessage)
|
chatRoom.deleteMessage(chatMessageModel.chatMessage)
|
||||||
messageDeletedEvent.postValue(Event(true))
|
messageDeletedEvent.postValue(Event(true))
|
||||||
|
|
||||||
|
updateRepliesUpTo(chatMessageModel.chatMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -937,6 +931,21 @@ class ConversationViewModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@WorkerThread
|
||||||
|
private fun updateRepliesUpTo(chatMessage: ChatMessage) {
|
||||||
|
for (model in eventsList.reversed()) {
|
||||||
|
if (model.model is MessageModel) {
|
||||||
|
if (model.model.replyToMessageId == chatMessage.messageId) {
|
||||||
|
model.model.computeReplyInfo()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.model.timestamp < chatMessage.time) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
private fun computeComposingLabel() {
|
private fun computeComposingLabel() {
|
||||||
if (!isChatRoomInitialized()) return
|
if (!isChatRoomInitialized()) return
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue