make emojis clickable

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-05-06 20:47:09 +02:00
parent b325d60fda
commit 44cbb020a8
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -41,6 +41,8 @@ import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants
import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.SpreedFeatures
import com.vanniktech.emoji.Emoji
import com.vanniktech.emoji.EmojiManager
import com.vanniktech.emoji.EmojiPopup
import com.vanniktech.emoji.EmojiTextView
import com.vanniktech.emoji.installDisableKeyboardInput
@ -248,7 +250,12 @@ class MessageActionsDialog(
isReactableMessageType(message)
) {
val recentEmojiManager = RecentEmojiManager(context, 6)
val topEmojis = recentEmojiManager.getRecentEmojis()
val recentEmojis = recentEmojiManager.getRecentEmojis().map { it.unicode }
val fallbackEmojis = listOf("👍", "👎", "❤️", "😂", "😕", "😢")
val combinedEmojis = (recentEmojis + fallbackEmojis)
.distinct()
.take(6)
val emojiTextViews = listOf(
dialogMessageActionsBinding.emojiThumbsUp,
@ -259,21 +266,17 @@ class MessageActionsDialog(
dialogMessageActionsBinding.emojiSad
)
val fallbackEmojis = listOf("👍", "👎", "❤️", "😂", "😕", "😢")
val emojisToDisplay = if (topEmojis.isNotEmpty()) {
topEmojis.map { it.unicode }
} else {
fallbackEmojis
}
emojiTextViews.forEachIndexed { index, textView ->
val emoji = emojisToDisplay.getOrNull(index)
val emoji = combinedEmojis.getOrNull(index)
if (emoji != null) {
textView.text = emoji
checkAndSetEmojiSelfReaction(textView)
textView.setOnClickListener {
clickOnEmoji(message, emoji)
}
textView.visibility = View.VISIBLE
} else {
textView.visibility = View.INVISIBLE
}
}