Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.su.service.ui.artikel
- import KategoriAdapter
- import android.os.Bundle
- import android.util.Log
- import android.view.LayoutInflater
- import android.view.MotionEvent
- import android.view.View
- import android.view.ViewGroup
- import android.widget.Toast
- import androidx.appcompat.widget.SearchView
- import androidx.fragment.app.Fragment
- import androidx.lifecycle.Observer
- import androidx.lifecycle.ViewModelProviders
- import androidx.paging.PagedList
- import androidx.recyclerview.widget.DividerItemDecoration
- import androidx.recyclerview.widget.LinearLayoutManager
- import com.su.service.Injection
- import com.su.service.R
- import com.su.service.model.artikel.Artikel
- import com.su.service.model.kategori.KategoriItem
- import kotlinx.android.synthetic.main.fragment_artikel.*
- class ArtikelFragment : Fragment() {
- private val TAG = ArtikelFragment::class.java.simpleName
- private lateinit var artikelViewModel: ArtikelViewModel
- private lateinit var kategoriViewModel: KategoriViewModel
- private val adapter = ArtikelAdapter()
- private var pageKategori = 1
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- kategoriViewModel = ViewModelProviders.of(this).get(KategoriViewModel::class.java)
- artikelViewModel = ViewModelProviders.of(this,
- context?.let { Injection.provideViewModelFactory(it) }).get(ArtikelViewModel::class.java)
- val root = inflater.inflate(R.layout.fragment_artikel, container, false)
- return root
- }
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- val decoration = DividerItemDecoration(activity!!, DividerItemDecoration.VERTICAL)
- rv_artikel.addItemDecoration(decoration)
- context?.let { adapter.setContext(it) }
- initDataByKategoriAdapter()
- initRvKategori()
- sv_artikel.setOnTouchListener(object : View.OnTouchListener{
- override fun onTouch(v: View?, mv: MotionEvent?): Boolean {
- sv_artikel.isIconified = false
- return true
- }
- })
- sv_artikel.setOnQueryTextListener(object: SearchView.OnQueryTextListener{
- override fun onQueryTextSubmit(query: String?): Boolean {
- if(query?.length!! >= 3){
- }
- return true
- }
- override fun onQueryTextChange(newText: String?): Boolean {
- return false
- }
- })
- }
- private fun initDataByKategoriAdapter() {
- rv_artikel.layoutManager = LinearLayoutManager(activity)
- rv_artikel.setHasFixedSize(true)
- rv_artikel.adapter = adapter
- artikelViewModel.artikelKategori.observe(activity!!, Observer<PagedList<Artikel>> {
- Log.d("ArtikelFragment", "List Artikel: ${it.size}")
- adapter.submitList(it)
- })
- artikelViewModel.kategoriNetworkError.observe(activity!!, Observer {
- Log.d("ArtikelFragment", "List: ${it}")
- })
- }
- private fun initRvKategori() {
- artikelViewModel.getKategori("")
- kategoriViewModel.getDataKategori(pageKategori.toString(),"","","").observe(activity!!, Observer {
- val adapter = KategoriAdapter(it.result?.kategori as ArrayList<KategoriItem>)
- rv_kategori.layoutManager = LinearLayoutManager(activity!!, LinearLayoutManager.HORIZONTAL, false)
- rv_kategori.setHasFixedSize(true)
- rv_kategori.adapter = adapter
- adapter.setOnItemClickListener(object : KategoriAdapter.OnItemClickListener{
- override fun onItemClick(position: Int, kategori: String) {
- if(kategori == "terbaru"){
- artikelViewModel.getKategori("")
- }else{
- artikelViewModel.getKategori(kategori)
- }
- }
- })
- })
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement