implement reply logic for text messages

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2025-07-14 11:32:42 +02:00
parent cd068d42db
commit 18b5744974
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
4 changed files with 13 additions and 11 deletions

View File

@ -167,9 +167,10 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) :
// parent message handling
val chatActivity = commonMessageInterface as ChatActivity
binding.messageQuote.quotedChatMessageView.visibility =
if (chatActivity.threadId == message.threadId) {
View.GONE
} else if (!message.isDeleted && message.parentMessageId != null) {
if (!message.isDeleted &&
message.parentMessageId != null &&
message.parentMessageId != chatActivity.threadId
) {
processParentMessage(message)
View.VISIBLE
} else {

View File

@ -182,9 +182,10 @@ class OutcomingTextMessageViewHolder(itemView: View) :
// parent message handling
val chatActivity = commonMessageInterface as ChatActivity
binding.messageQuote.quotedChatMessageView.visibility =
if (chatActivity.threadId == message.threadId) {
View.GONE
} else if (!message.isDeleted && message.parentMessageId != null) {
if (!message.isDeleted &&
message.parentMessageId != null &&
message.parentMessageId != chatActivity.threadId
) {
processParentMessage(message)
View.VISIBLE
} else {

View File

@ -354,7 +354,7 @@ class ChatActivity :
var sessionIdAfterRoomJoined: String? = null
lateinit var roomToken: String
var threadId: Long? = null
var thread: ThreadInfo? = null
var threadInfo: ThreadInfo? = null
var conversationUser: User? = null
lateinit var spreedCapabilities: SpreedCapability
var chatApiVersion: Int = 1
@ -1296,7 +1296,7 @@ class ChatActivity :
}
is ChatViewModel.ThreadRetrieveUiState.Success -> {
thread = uiState.thread
threadInfo = uiState.thread
}
}
}
@ -2668,7 +2668,7 @@ class ChatActivity :
title.text =
if (isChatThread()) {
thread?.first?.message
threadInfo?.first?.message
} else if (currentConversation?.displayName != null) {
try {
EmojiCompat.get().process(currentConversation?.displayName as CharSequence).toString()
@ -2683,7 +2683,7 @@ class ChatActivity :
if (isChatThread()) {
val repliesAmountTitle = String.format(
resources.getString(R.string.thread_replies_amount),
thread?.thread?.numReplies
threadInfo?.thread?.numReplies
)
statusMessageViewContents(repliesAmountTitle)
} else if (currentConversation?.type == ConversationEnums.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) {

View File

@ -862,7 +862,7 @@ class MessageInputFragment : Fragment() {
.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.tag as Int? ?: 0
if (replyMessageId == 0) {
replyMessageId = chatActivity.thread?.last?.id?.toInt() ?: 0
replyMessageId = chatActivity.threadInfo?.thread?.id ?: 0
}
sendMessage(