mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
make unread work for chat messages based on adapter data
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
58c0106ec7
commit
10f2c3be3a
@ -2051,6 +2051,22 @@ class ChatController(args: Bundle) :
|
||||
if (!isFromTheFuture) {
|
||||
var previousMessageId = NO_PREVIOUS_MESSAGE_ID
|
||||
for (i in chatMessageList.indices.reversed()) {
|
||||
val chatMessage = chatMessageList[i]
|
||||
|
||||
if (previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
||||
chatMessage.previousMessageId = previousMessageId
|
||||
} else if (adapter?.isEmpty != true) {
|
||||
if (adapter!!.items[0].item is ChatMessage) {
|
||||
chatMessage.previousMessageId = (adapter!!.items[0].item as ChatMessage).jsonMessageId
|
||||
} else if (adapter!!.items.size > 1 && adapter!!.items[1].item is ChatMessage) {
|
||||
chatMessage.previousMessageId = (adapter!!.items[1].item as ChatMessage).jsonMessageId
|
||||
}
|
||||
}
|
||||
|
||||
previousMessageId = chatMessage.jsonMessageId
|
||||
}
|
||||
|
||||
for (i in chatMessageList.indices) {
|
||||
if (chatMessageList.size > i + 1) {
|
||||
if (TextUtils.isEmpty(chatMessageList[i].systemMessage) &&
|
||||
TextUtils.isEmpty(chatMessageList[i + 1].systemMessage) &&
|
||||
@ -2069,12 +2085,6 @@ class ChatController(args: Bundle) :
|
||||
chatMessage.isOneToOneConversation =
|
||||
currentConversation?.type == Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL
|
||||
chatMessage.activeUser = conversationUser
|
||||
|
||||
if (previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
||||
chatMessage.previousMessageId = previousMessageId
|
||||
}
|
||||
|
||||
previousMessageId = chatMessage.jsonMessageId
|
||||
}
|
||||
|
||||
if (adapter != null) {
|
||||
@ -2098,15 +2108,25 @@ class ChatController(args: Bundle) :
|
||||
val isThereANewNotice =
|
||||
shouldAddNewMessagesNotice || adapter?.getMessagePositionByIdInReverse("-1") != -1
|
||||
|
||||
var previousMessageId = -1
|
||||
var previousMessageId = NO_PREVIOUS_MESSAGE_ID
|
||||
for (i in chatMessageList.indices.reversed()) {
|
||||
chatMessage = chatMessageList[i]
|
||||
val chatMessageItem = chatMessageList[i]
|
||||
|
||||
if (previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
||||
chatMessage.previousMessageId = previousMessageId
|
||||
chatMessageItem.previousMessageId = previousMessageId
|
||||
} else if (adapter?.isEmpty != true) {
|
||||
if (adapter!!.items[0].item is ChatMessage) {
|
||||
chatMessageItem.previousMessageId = (adapter!!.items[0].item as ChatMessage).jsonMessageId
|
||||
} else if (adapter!!.items.size > 1 && adapter!!.items[1].item is ChatMessage) {
|
||||
chatMessageItem.previousMessageId = (adapter!!.items[1].item as ChatMessage).jsonMessageId
|
||||
}
|
||||
}
|
||||
|
||||
previousMessageId = chatMessage.jsonMessageId
|
||||
previousMessageId = chatMessageItem.jsonMessageId
|
||||
}
|
||||
|
||||
for (i in chatMessageList.indices) {
|
||||
chatMessage = chatMessageList[i]
|
||||
|
||||
chatMessage.activeUser = conversationUser
|
||||
|
||||
@ -2334,7 +2354,7 @@ class ChatController(args: Bundle) :
|
||||
}
|
||||
R.id.action_mark_as_unread -> {
|
||||
val chatMessage = message as ChatMessage?
|
||||
if (chatMessage!!.previousMessageId > 0) {
|
||||
if (chatMessage!!.previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
||||
ncApi!!.setChatReadMarker(
|
||||
credentials,
|
||||
ApiUtils.getUrlForSetChatReadMarker(
|
||||
|
Loading…
Reference in New Issue
Block a user