avoid duplications

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-05-07 12:36:43 +02:00
parent 544b8efea3
commit e63e1de7bc
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220
2 changed files with 35 additions and 9 deletions

View File

@ -41,11 +41,13 @@ 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.EmojiPopup
import com.vanniktech.emoji.EmojiTextView
import com.vanniktech.emoji.installDisableKeyboardInput
import com.vanniktech.emoji.installForceSingleEmoji
import com.vanniktech.emoji.recent.RecentEmojiManager
import com.vanniktech.emoji.search.SearchEmojiManager
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@ -247,13 +249,32 @@ class MessageActionsDialog(
isPermitted(hasChatPermission) &&
isReactableMessageType(message)
) {
val recentEmojiManager = RecentEmojiManager(context, 6)
val recentEmojis = recentEmojiManager.getRecentEmojis().map { it.unicode }
val fallbackEmojis = listOf("👍", "👎", "❤️", "😂", "😕", "😢")
val recentEmojiManager = RecentEmojiManager(context,6)
val recentEmojis = recentEmojiManager.getRecentEmojis()
val searchEmojiManager = SearchEmojiManager()
val combinedEmojis = (recentEmojis + fallbackEmojis)
.distinct()
.take(6)
val initialSearchKeywords = listOf("thumbsup", "thumbsdown", "heart", "joy", "confused", "cry")
val initialEmojisFromSearch = mutableSetOf<Emoji>()
initialSearchKeywords.forEach { keyword ->
val searchResults = searchEmojiManager.search(keyword)
if (searchResults.isNotEmpty()) {
initialEmojisFromSearch.add(searchResults[0].component1())
}
if (initialEmojisFromSearch.size >= 6) {
return@forEach
}
}
val combinedEmojis = (recentEmojis + initialEmojisFromSearch).toList().distinct().take(6)
val emojiSearchKeywords = mapOf(
"👍" to "thumbsup",
"👎" to "thumbsdown",
"❤️" to "heart",
"😂" to "joy",
"😕" to "confused",
"😢" to "cry"
)
val emojiTextViews = listOf(
dialogMessageActionsBinding.emojiThumbsUp,
@ -261,16 +282,21 @@ class MessageActionsDialog(
dialogMessageActionsBinding.emojiHeart,
dialogMessageActionsBinding.emojiLaugh,
dialogMessageActionsBinding.emojiConfused,
dialogMessageActionsBinding.emojiSad
dialogMessageActionsBinding.emojiCry
)
emojiTextViews.forEachIndexed { index, textView ->
val emoji = combinedEmojis.getOrNull(index)
val emoji = combinedEmojis.getOrNull(index)?.unicode
if (emoji != null) {
textView.text = emoji
checkAndSetEmojiSelfReaction(textView)
textView.setOnClickListener {
clickOnEmoji(message, emoji)
val keyword = emojiSearchKeywords[emoji] ?: ""
val result = SearchEmojiManager().search(keyword)
if (result.isNotEmpty()) {
recentEmojiManager.addEmoji(result[0].component1())
}
}
textView.visibility = View.VISIBLE
} else {

View File

@ -84,7 +84,7 @@
android:textSize="20sp" />
<com.vanniktech.emoji.EmojiTextView
android:id="@+id/emojiSad"
android:id="@+id/emojiCry"
android:layout_width="@dimen/reaction_bottom_sheet_layout_size"
android:layout_height="@dimen/reaction_bottom_sheet_layout_size"
android:layout_marginLeft="@dimen/standard_quarter_margin"