Advertisement
Guest User

artikel fragment

a guest
Apr 1st, 2020
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. package com.su.service.ui.artikel
  2.  
  3. import KategoriAdapter
  4. import android.os.Bundle
  5. import android.util.Log
  6. import android.view.LayoutInflater
  7. import android.view.MotionEvent
  8. import android.view.View
  9. import android.view.ViewGroup
  10. import android.widget.Toast
  11. import androidx.appcompat.widget.SearchView
  12. import androidx.fragment.app.Fragment
  13. import androidx.lifecycle.Observer
  14. import androidx.lifecycle.ViewModelProviders
  15. import androidx.paging.PagedList
  16. import androidx.recyclerview.widget.DividerItemDecoration
  17. import androidx.recyclerview.widget.LinearLayoutManager
  18. import com.su.service.Injection
  19. import com.su.service.R
  20. import com.su.service.model.artikel.Artikel
  21. import com.su.service.model.kategori.KategoriItem
  22. import kotlinx.android.synthetic.main.fragment_artikel.*
  23.  
  24. class ArtikelFragment : Fragment() {
  25. private val TAG = ArtikelFragment::class.java.simpleName
  26. private lateinit var artikelViewModel: ArtikelViewModel
  27. private lateinit var kategoriViewModel: KategoriViewModel
  28. private val adapter = ArtikelAdapter()
  29. private var pageKategori = 1
  30.  
  31. override fun onCreateView(
  32. inflater: LayoutInflater,
  33. container: ViewGroup?,
  34. savedInstanceState: Bundle?
  35. ): View? {
  36. kategoriViewModel = ViewModelProviders.of(this).get(KategoriViewModel::class.java)
  37. artikelViewModel = ViewModelProviders.of(this,
  38. context?.let { Injection.provideViewModelFactory(it) }).get(ArtikelViewModel::class.java)
  39. val root = inflater.inflate(R.layout.fragment_artikel, container, false)
  40. return root
  41. }
  42.  
  43. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  44. super.onViewCreated(view, savedInstanceState)
  45. val decoration = DividerItemDecoration(activity!!, DividerItemDecoration.VERTICAL)
  46. rv_artikel.addItemDecoration(decoration)
  47. context?.let { adapter.setContext(it) }
  48. initDataByKategoriAdapter()
  49. initRvKategori()
  50.  
  51. sv_artikel.setOnTouchListener(object : View.OnTouchListener{
  52. override fun onTouch(v: View?, mv: MotionEvent?): Boolean {
  53. sv_artikel.isIconified = false
  54. return true
  55. }
  56. })
  57.  
  58. sv_artikel.setOnQueryTextListener(object: SearchView.OnQueryTextListener{
  59. override fun onQueryTextSubmit(query: String?): Boolean {
  60. if(query?.length!! >= 3){
  61. }
  62. return true
  63. }
  64.  
  65. override fun onQueryTextChange(newText: String?): Boolean {
  66. return false
  67. }
  68.  
  69. })
  70.  
  71. }
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78. private fun initDataByKategoriAdapter() {
  79. rv_artikel.layoutManager = LinearLayoutManager(activity)
  80. rv_artikel.setHasFixedSize(true)
  81. rv_artikel.adapter = adapter
  82. artikelViewModel.artikelKategori.observe(activity!!, Observer<PagedList<Artikel>> {
  83. Log.d("ArtikelFragment", "List Artikel: ${it.size}")
  84. adapter.submitList(it)
  85. })
  86. artikelViewModel.kategoriNetworkError.observe(activity!!, Observer {
  87. Log.d("ArtikelFragment", "List: ${it}")
  88. })
  89. }
  90.  
  91. private fun initRvKategori() {
  92. artikelViewModel.getKategori("")
  93. kategoriViewModel.getDataKategori(pageKategori.toString(),"","","").observe(activity!!, Observer {
  94. val adapter = KategoriAdapter(it.result?.kategori as ArrayList<KategoriItem>)
  95. rv_kategori.layoutManager = LinearLayoutManager(activity!!, LinearLayoutManager.HORIZONTAL, false)
  96. rv_kategori.setHasFixedSize(true)
  97. rv_kategori.adapter = adapter
  98. adapter.setOnItemClickListener(object : KategoriAdapter.OnItemClickListener{
  99. override fun onItemClick(position: Int, kategori: String) {
  100. if(kategori == "terbaru"){
  101. artikelViewModel.getKategori("")
  102. }else{
  103. artikelViewModel.getKategori(kategori)
  104. }
  105. }
  106.  
  107. })
  108. })
  109.  
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement