Skip to content

Instantly share code, notes, and snippets.

@DjakaTechnology
Created January 15, 2020 16:29
Show Gist options
  • Select an option

  • Save DjakaTechnology/ed96f09933bacae1c4e0ef1ea5e578b8 to your computer and use it in GitHub Desktop.

Select an option

Save DjakaTechnology/ed96f09933bacae1c4e0ef1ea5e578b8 to your computer and use it in GitHub Desktop.
FeedAdapterWIthoutStories
class FeedAdapterOld(var items: List<FeedItem> = listOf()) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return when(items[position]) {
is FeedPostItem -> ITEM_POST_ID
is FeedStandardItem -> ITEM_STANDARD_ID
else -> -1
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return if (viewType == ITEM_STANDARD_ID) {
ItemStandardViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.feed_standard_item,
parent,
false
)
)
} else {
ItemPostViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.feed_post_item, parent, false)
)
}
}
override fun getItemCount(): Int {
return items.size
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder.itemViewType == ITEM_STANDARD_ID && holder is ItemStandardViewHolder) {
holder.bind(items[position] as FeedStandardItem)
} else if (holder.itemViewType == ITEM_POST_ID && holder is ItemPostViewHolder) {
holder.bind(items[position] as FeedPostItem)
}
}
class ItemPostViewHolder(view: View): RecyclerView.ViewHolder(view) {
fun bind(item: FeedPostItem) {
itemView.text_title.text = item.title
itemView.text_content.text = item.content
Glide.with(itemView.image_main.context).load(item.imageUrl).into(itemView.image_main)
}
}
class ItemStandardViewHolder(view: View): RecyclerView.ViewHolder(view) {
fun bind(item: FeedStandardItem) {
itemView.text_title.text = item.title
itemView.text_author.text = item.author
itemView.text_duration.text = item.duration
Glide.with(itemView.image_main.context).load(item.imageUrl).into(itemView.image_main)
}
}
companion object {
const val ITEM_STANDARD_ID = 0
const val ITEM_POST_ID = 1
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment