Skip to content

Instantly share code, notes, and snippets.

@DjakaTechnology
Created January 15, 2020 16:39
Show Gist options
  • Save DjakaTechnology/b1183bbbad6566a8db0d3346d5d74ede to your computer and use it in GitHub Desktop.
Save DjakaTechnology/b1183bbbad6566a8db0d3346d5d74ede to your computer and use it in GitHub Desktop.
class FeedStoryAdapterDelegate : AdapterDelegate<FeedItem> {
override fun isForViewType(items: List<FeedItem>, position: Int): Boolean {
return items[position] is FeedStoryItem
}
override fun onCreateViewHolder(parent: ViewGroup): RecyclerView.ViewHolder {
return ItemStoryViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.feed_story_item, parent, false))
}
override fun onBindViewHolder(items: List<FeedItem>, position: Int, holder: RecyclerView.ViewHolder) {
(holder as ItemStoryViewHolder).bind(items[position] as FeedStoryItem)
}
inner class ItemStoryViewHolder(view: View): RecyclerView.ViewHolder(view) {
private val adapter = StoryStandardAdapter()
init {
itemView.rv_story.adapter = adapter
itemView.rv_story.layoutManager = LinearLayoutManager(itemView.context, LinearLayoutManager.HORIZONTAL, false)
itemView.rv_story.addItemDecoration(DividerItemDecoration(itemView.context, DividerItemDecoration.HORIZONTAL).apply {
ContextCompat.getDrawable(itemView.context, R.drawable.divider_spacing)?.let { setDrawable(it) }
})
}
fun bind(item: FeedStoryItem) {
adapter.items = item.stories
adapter.notifyDataSetChanged()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment