Commit b9074c5d authored by Leonardo Aramaki's avatar Leonardo Aramaki

Get emoji keyboard category tab icon from resources instead of spanned text

parent bb283ca0
...@@ -24,10 +24,11 @@ class CategoryPagerAdapter(val listener: EmojiKeyboardListener) : PagerAdapter() ...@@ -24,10 +24,11 @@ class CategoryPagerAdapter(val listener: EmojiKeyboardListener) : PagerAdapter()
val recycler = view.findViewById(R.id.emojiRecyclerView) as RecyclerView val recycler = view.findViewById(R.id.emojiRecyclerView) as RecyclerView
val adapter = EmojiAdapter(layoutManager.spanCount, listener) val adapter = EmojiAdapter(layoutManager.spanCount, listener)
val category = EmojiCategory.values().get(position) val category = EmojiCategory.values().get(position)
val emojis = if (category != EmojiCategory.RECENTS) val emojis = if (category != EmojiCategory.RECENTS) {
EmojiRepository.getEmojisByCategory(category) EmojiRepository.getEmojisByCategory(category)
else } else {
EmojiRepository.getRecents() EmojiRepository.getRecents()
}
adapter.addEmojis(emojis) adapter.addEmojis(emojis)
recycler.layoutManager = layoutManager recycler.layoutManager = layoutManager
recycler.itemAnimator = DefaultItemAnimator() recycler.itemAnimator = DefaultItemAnimator()
...@@ -43,7 +44,7 @@ class CategoryPagerAdapter(val listener: EmojiKeyboardListener) : PagerAdapter() ...@@ -43,7 +44,7 @@ class CategoryPagerAdapter(val listener: EmojiKeyboardListener) : PagerAdapter()
override fun getCount() = EmojiCategory.values().size override fun getCount() = EmojiCategory.values().size
override fun getPageTitle(position: Int) = EmojiCategory.values()[position].icon() override fun getPageTitle(position: Int) = EmojiCategory.values()[position].textIcon()
class EmojiAdapter(val spanCount: Int, val listener: EmojiKeyboardListener) : RecyclerView.Adapter<EmojiRowViewHolder>() { class EmojiAdapter(val spanCount: Int, val listener: EmojiKeyboardListener) : RecyclerView.Adapter<EmojiRowViewHolder>() {
......
package chat.rocket.android.widget.emoji package chat.rocket.android.widget.emoji
import android.support.annotation.DrawableRes
import android.text.SpannableString import android.text.SpannableString
import android.text.Spanned import android.text.Spanned
import chat.rocket.android.R
enum class EmojiCategory { enum class EmojiCategory {
RECENTS { RECENTS {
override fun icon() = getTextIconFor("\uD83D\uDD58") override fun resourceIcon() = R.drawable.ic_emoji_recents
override fun textIcon() = getTextIconFor("\uD83D\uDD58")
}, },
PEOPLE() { PEOPLE() {
override fun icon() = getTextIconFor("\uD83D\uDE00") override fun resourceIcon() = R.drawable.ic_emoji_people
override fun textIcon() = getTextIconFor("\uD83D\uDE00")
}, },
NATURE { NATURE {
override fun icon() = getTextIconFor("\uD83D\uDC3B") override fun resourceIcon() = R.drawable.ic_emoji_nature
override fun textIcon() = getTextIconFor("\uD83D\uDC3B")
}, },
FOOD { FOOD {
override fun icon() = getTextIconFor("\uD83C\uDF4E") override fun resourceIcon() = R.drawable.ic_emoji_food
override fun textIcon() = getTextIconFor("\uD83C\uDF4E")
}, },
ACTIVITY { ACTIVITY {
override fun icon() = getTextIconFor("\uD83D\uDEB4") override fun resourceIcon() = R.drawable.ic_emoji_activity
override fun textIcon() = getTextIconFor("\uD83D\uDEB4")
}, },
TRAVEL { TRAVEL {
override fun icon() = getTextIconFor("\uD83C\uDFD9️") override fun resourceIcon() = R.drawable.ic_emoji_travel
override fun textIcon() = getTextIconFor("\uD83C\uDFD9️")
}, },
OBJECTS { OBJECTS {
override fun icon() = getTextIconFor("\uD83D\uDD2A") override fun resourceIcon() = R.drawable.ic_emoji_objects
override fun textIcon() = getTextIconFor("\uD83D\uDD2A")
}, },
SYMBOLS { SYMBOLS {
override fun icon() = getTextIconFor("⚛") override fun resourceIcon() = R.drawable.ic_emoji_symbols
override fun textIcon() = getTextIconFor("⚛")
}, },
FLAGS { FLAGS {
override fun icon() = getTextIconFor("\uD83D\uDEA9") override fun resourceIcon() = R.drawable.ic_emoji_flags
override fun textIcon() = getTextIconFor("\uD83D\uDEA9")
}; };
abstract fun icon(): CharSequence abstract fun textIcon(): CharSequence
@DrawableRes
abstract fun resourceIcon(): Int
protected fun getTextIconFor(text: String): CharSequence { protected fun getTextIconFor(text: String): CharSequence {
val span = EmojiTypefaceSpan("sans-serif", EmojiRepository.cachedTypeface) val span = EmojiTypefaceSpan("sans-serif", EmojiRepository.cachedTypeface)
......
...@@ -14,7 +14,7 @@ import android.view.View ...@@ -14,7 +14,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import android.widget.EditText import android.widget.EditText
import android.widget.TextView import android.widget.ImageView
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.util.extensions.setVisible import chat.rocket.android.util.extensions.setVisible
...@@ -131,8 +131,8 @@ class EmojiFragment : Fragment() { ...@@ -131,8 +131,8 @@ class EmojiFragment : Fragment() {
val tab = tabLayout.getTabAt(category.ordinal) val tab = tabLayout.getTabAt(category.ordinal)
val tabView = layoutInflater.inflate(R.layout.emoji_picker_tab, null) val tabView = layoutInflater.inflate(R.layout.emoji_picker_tab, null)
tab?.setCustomView(tabView) tab?.setCustomView(tabView)
val textView = tabView.findViewById(R.id.text) as TextView val textView = tabView.findViewById(R.id.image_category) as ImageView
textView.text = category.icon() textView.setImageResource(category.resourceIcon())
} }
val currentTab = if (EmojiRepository.getRecents().isEmpty()) EmojiCategory.PEOPLE.ordinal else val currentTab = if (EmojiRepository.getRecents().isEmpty()) EmojiCategory.PEOPLE.ordinal else
......
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