Skip to content

Instantly share code, notes, and snippets.

@Chullian
Created June 23, 2019 19:14
Show Gist options
  • Save Chullian/c075f1a39fd5f855768a96a8dba4f747 to your computer and use it in GitHub Desktop.
Save Chullian/c075f1a39fd5f855768a96a8dba4f747 to your computer and use it in GitHub Desktop.
class HomeFragment : BaseFragment<HomeVm>(), OnItemClickedListener<ItemsListContent> {
override val layoutId = R.layout.fr_home
override val viewModelClass = HomeVm::class.java
private val eateryObserver = Observer<List<ItemsListContent>> { list ->
recyclerEatery.adapter = context?.let { context -> HomeitemsAdapter(context, list, this) }
}
private val drinksObserver = Observer<List<ItemsListContent>> { list ->
recyclerJuiceBar.adapter = context?.let { context -> HomeitemsAdapter(context, list, this) }
}
private val imageSliderObserver = Observer<List<String>> { list ->
val sliderAdapter = ImageSliderAdapter(list as MutableList<String>, object : SliderItemClickListener<String> {
override fun onClickedSliderIted(data: String) {
callback?.showSnack(data)
}
override fun onItemClicked(item: String?, position: Int) {
callback?.showSnack(item.toString())
}
})
container_slider_home.create(sliderAdapter, lifecycle = lifecycle)
}
override fun observeLiveData() {
viewModel.run {
itemEateryListLD.observe(this@HomeFragment, eateryObserver)
itemDrinkListLD.observe(this@HomeFragment, drinksObserver)
imageSliderTestListLD.observe(this@HomeFragment, imageSliderObserver)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.fetchHomeScreenData()
}
var callback: MainCallback? = null
override fun onAttach(context: Context) {
super.onAttach(context)
callback = bindInterfaceOrThrow<MainCallback>(parentFragment, context)
}
override fun onClickedItem(item: ItemsListContent) {
callback?.showSnack(item.itemType.toString())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment