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.

Revisions

  1. Chullian created this gist Jun 23, 2019.
    54 changes: 54 additions & 0 deletions HomeFragment
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    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())
    }


    }