I am trying to implement a Interactive Console
for one of the Android application. I am using ChatKit for this. Apart from the existing message layouts, I want to use a custom message type,layout & view holder.
This is what I did.
val CONTENT_TYPE_CARD_LIST= "5".toByte()
val holders = MessageHolders().registerContentType(CONTENT_TYPE_CARD_LIST,
CardListViewHolder::class.java,R.layout.card_list_layout,
CardListViewHolder::class.java,R.layout.card_list_layout,
object : MessageHolders.ContentChecker<Message>{
override fun hasContentFor(message: Message?, type: Byte): Boolean {
if (type.toString().equals("5"))
return true
return false
}
})
Here is the CardListViewHolder.kt
file
class CardListViewHolder(itemView: View?) : MessageHolders.BaseMessageViewHolder<Message>(itemView) {
var cardsListView : RecyclerView
init {
cardsListView = itemView?.findViewById(R.id.cardList)!!
}
override fun onBind(data: Message?) {
print("Checking")
}
class CardListAdapter : RecyclerView.Adapter<CardItemViewHolder>() {
var listItems : Array<CardItem> = emptyArray()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardItemViewHolder {
return CardItemViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.card_item,parent,false))
}
override fun getItemCount(): Int {
return listItems.size
}
override fun onBindViewHolder(holder: CardItemViewHolder, position: Int) {
holder.cardTitle?.text = listItems[position].cardTitle
holder.cardSummary?.text = listItems[position].cardSummary
Picasso.get().load(Uri.parse(listItems[position].cardImageUrl)).into(holder.cardIcon)
}
}
class CardItemViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView) {
var cardTitle : TextView ?= null
var cardSummary : TextView ?= null
var cardIcon : ImageView ?= null
init {
cardTitle = itemView?.findViewById(R.id.cardTitle)
cardSummary = itemView?.findViewById(R.id.cardSummary)
cardIcon = itemView?.findViewById(R.id.cardIcon)
}
}
}
But, now this is not loading the existing text MessageHolders/Layouts
. I want to use the existing message cell types along with this extra Carousal kind of message layout.
Did I do something wrong here ? Why other existing content types not working ?