Commit 55299061 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Show emoji drawable on the left of the suggestions view

parent 731f286b
package chat.rocket.android.chatroom.adapter package chat.rocket.android.chatroom.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.text.SpannableStringBuilder
import android.text.style.ImageSpan
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.chatroom.adapter.EmojiSuggestionsAdapter.EmojiSuggestionViewHolder import chat.rocket.android.chatroom.adapter.EmojiSuggestionsAdapter.EmojiSuggestionViewHolder
import chat.rocket.android.chatroom.uimodel.suggestion.EmojiSuggestionUiModel import chat.rocket.android.chatroom.uimodel.suggestion.EmojiSuggestionUiModel
import chat.rocket.android.emoji.EmojiParser
import chat.rocket.android.emoji.internal.isCustom
import chat.rocket.android.suggestions.model.SuggestionModel import chat.rocket.android.suggestions.model.SuggestionModel
import chat.rocket.android.suggestions.strategy.trie.TrieCompletionStrategy import chat.rocket.android.suggestions.strategy.trie.TrieCompletionStrategy
import chat.rocket.android.suggestions.ui.BaseSuggestionViewHolder import chat.rocket.android.suggestions.ui.BaseSuggestionViewHolder
import chat.rocket.android.suggestions.ui.SuggestionsAdapter import chat.rocket.android.suggestions.ui.SuggestionsAdapter
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.suggestion_emoji_item.view.* import kotlinx.android.synthetic.main.suggestion_emoji_item.view.*
class EmojiSuggestionsAdapter : SuggestionsAdapter<EmojiSuggestionViewHolder>( class EmojiSuggestionsAdapter : SuggestionsAdapter<EmojiSuggestionViewHolder>(
...@@ -31,6 +36,14 @@ class EmojiSuggestionsAdapter : SuggestionsAdapter<EmojiSuggestionViewHolder>( ...@@ -31,6 +36,14 @@ class EmojiSuggestionsAdapter : SuggestionsAdapter<EmojiSuggestionViewHolder>(
item as EmojiSuggestionUiModel item as EmojiSuggestionUiModel
with(itemView) { with(itemView) {
text_emoji_shortname.text = ":${item.text}" text_emoji_shortname.text = ":${item.text}"
if (item.emoji.isCustom()) {
view_flipper_emoji.displayedChild = 1
val sp = SpannableStringBuilder().append(item.emoji.shortname)
Glide.with(context).asDrawable().load(item.emoji.url).into(image_emoji)
} else {
text_emoji.text = EmojiParser.parse(context, item.emoji.unicode)
view_flipper_emoji.displayedChild = 0
}
setOnClickListener { setOnClickListener {
itemClickListener?.onClick(item) itemClickListener?.onClick(item)
} }
......
...@@ -1013,6 +1013,7 @@ class ChatRoomPresenter @Inject constructor( ...@@ -1013,6 +1013,7 @@ class ChatRoomPresenter @Inject constructor(
EmojiSuggestionUiModel( EmojiSuggestionUiModel(
text = it.shortname.replaceFirst(":", ""), text = it.shortname.replaceFirst(":", ""),
pinned = false, pinned = false,
emoji = it,
searchList = listOf(it.shortname) searchList = listOf(it.shortname)
) )
} }
......
package chat.rocket.android.chatroom.uimodel.suggestion package chat.rocket.android.chatroom.uimodel.suggestion
import chat.rocket.android.emoji.Emoji
import chat.rocket.android.suggestions.model.SuggestionModel import chat.rocket.android.suggestions.model.SuggestionModel
import chat.rocket.common.model.UserStatus import chat.rocket.common.model.UserStatus
class EmojiSuggestionUiModel( class EmojiSuggestionUiModel(
text: String, text: String,
pinned: Boolean = false, pinned: Boolean = false,
val emoji: Emoji,
searchList: List<String> searchList: List<String>
) : SuggestionModel(text, searchList, pinned) { ) : SuggestionModel(text, searchList, pinned) {
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
android:id="@+id/text_emoji" android:id="@+id/text_emoji"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:textColor="@android:color/black"
tools:text=":)" /> tools:text=":)" />
<ImageView <ImageView
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment