Fix text emoticons not showing up in recents.

fork-5.53.8
Cody Henthorne 2021-06-28 10:11:01 -04:00
rodzic f0dbe230b5
commit 5675f080f2
1 zmienionych plików z 12 dodań i 15 usunięć

Wyświetl plik

@ -11,9 +11,10 @@ import org.thoughtcrime.securesms.components.emoji.EmojiPageModel
import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter
import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.EmojiHeader import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.EmojiHeader
import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel
import org.thoughtcrime.securesms.components.emoji.parsing.EmojiTree
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.emoji.EmojiCategory import org.thoughtcrime.securesms.emoji.EmojiCategory
import org.thoughtcrime.securesms.emoji.EmojiSource import org.thoughtcrime.securesms.emoji.EmojiSource.Companion.latest
import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel
import org.thoughtcrime.securesms.util.DefaultValueLiveData import org.thoughtcrime.securesms.util.DefaultValueLiveData
import org.thoughtcrime.securesms.util.MappingModel import org.thoughtcrime.securesms.util.MappingModel
@ -68,16 +69,6 @@ class EmojiKeyboardPageViewModel(repository: EmojiKeyboardPageRepository) : View
internalSelectedKey.value = key internalSelectedKey.value = key
} }
private fun getPageForCategory(mappingModel: EmojiKeyboardPageCategoryMappingModel): EmojiPageMappingModel {
val page = if (mappingModel.key == RecentEmojiPageModel.KEY) {
RecentEmojiPageModel(ApplicationDependencies.getApplication(), EmojiKeyboardProvider.RECENT_STORAGE_KEY)
} else {
EmojiSource.latest.displayPages.first { it.iconAttr == mappingModel.iconId }
}
return EmojiPageMappingModel(mappingModel.key, page)
}
fun addToRecents(emoji: String) { fun addToRecents(emoji: String) {
RecentEmojiPageModel(ApplicationDependencies.getApplication(), EmojiKeyboardProvider.RECENT_STORAGE_KEY).onCodePointSelected(emoji) RecentEmojiPageModel(ApplicationDependencies.getApplication(), EmojiKeyboardProvider.RECENT_STORAGE_KEY).onCodePointSelected(emoji)
} }
@ -103,9 +94,15 @@ class EmojiKeyboardPageViewModel(repository: EmojiKeyboardPageRepository) : View
} }
private fun EmojiPageModel.toMappingModels(): List<MappingModel<*>> { private fun EmojiPageModel.toMappingModels(): List<MappingModel<*>> {
return if (EmojiCategory.EMOTICONS.key == key) { val emojiTree: EmojiTree = latest.emojiTree
displayEmoji.map { EmojiPageViewGridAdapter.EmojiTextModel(key, it) }
} else { return displayEmoji.map {
displayEmoji.map { EmojiPageViewGridAdapter.EmojiModel(key, it) } val isTextEmoji = EmojiCategory.EMOTICONS.key == key || (RecentEmojiPageModel.KEY == key && emojiTree.getEmoji(it.value, 0, it.value.length) == null)
if (isTextEmoji) {
EmojiPageViewGridAdapter.EmojiTextModel(key, it)
} else {
EmojiPageViewGridAdapter.EmojiModel(key, it)
}
} }
} }