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) {
|
if (!isFromTheFuture) {
|
||||||
var previousMessageId = NO_PREVIOUS_MESSAGE_ID
|
var previousMessageId = NO_PREVIOUS_MESSAGE_ID
|
||||||
for (i in chatMessageList.indices.reversed()) {
|
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 (chatMessageList.size > i + 1) {
|
||||||
if (TextUtils.isEmpty(chatMessageList[i].systemMessage) &&
|
if (TextUtils.isEmpty(chatMessageList[i].systemMessage) &&
|
||||||
TextUtils.isEmpty(chatMessageList[i + 1].systemMessage) &&
|
TextUtils.isEmpty(chatMessageList[i + 1].systemMessage) &&
|
||||||
@ -2069,12 +2085,6 @@ class ChatController(args: Bundle) :
|
|||||||
chatMessage.isOneToOneConversation =
|
chatMessage.isOneToOneConversation =
|
||||||
currentConversation?.type == Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL
|
currentConversation?.type == Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL
|
||||||
chatMessage.activeUser = conversationUser
|
chatMessage.activeUser = conversationUser
|
||||||
|
|
||||||
if (previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
|
||||||
chatMessage.previousMessageId = previousMessageId
|
|
||||||
}
|
|
||||||
|
|
||||||
previousMessageId = chatMessage.jsonMessageId
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adapter != null) {
|
if (adapter != null) {
|
||||||
@ -2098,15 +2108,25 @@ class ChatController(args: Bundle) :
|
|||||||
val isThereANewNotice =
|
val isThereANewNotice =
|
||||||
shouldAddNewMessagesNotice || adapter?.getMessagePositionByIdInReverse("-1") != -1
|
shouldAddNewMessagesNotice || adapter?.getMessagePositionByIdInReverse("-1") != -1
|
||||||
|
|
||||||
var previousMessageId = -1
|
var previousMessageId = NO_PREVIOUS_MESSAGE_ID
|
||||||
for (i in chatMessageList.indices.reversed()) {
|
for (i in chatMessageList.indices.reversed()) {
|
||||||
chatMessage = chatMessageList[i]
|
val chatMessageItem = chatMessageList[i]
|
||||||
|
|
||||||
if (previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
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
|
chatMessage.activeUser = conversationUser
|
||||||
|
|
||||||
@ -2334,7 +2354,7 @@ class ChatController(args: Bundle) :
|
|||||||
}
|
}
|
||||||
R.id.action_mark_as_unread -> {
|
R.id.action_mark_as_unread -> {
|
||||||
val chatMessage = message as ChatMessage?
|
val chatMessage = message as ChatMessage?
|
||||||
if (chatMessage!!.previousMessageId > 0) {
|
if (chatMessage!!.previousMessageId > NO_PREVIOUS_MESSAGE_ID) {
|
||||||
ncApi!!.setChatReadMarker(
|
ncApi!!.setChatReadMarker(
|
||||||
credentials,
|
credentials,
|
||||||
ApiUtils.getUrlForSetChatReadMarker(
|
ApiUtils.getUrlForSetChatReadMarker(
|
||||||
|
Loading…
Reference in New Issue
Block a user