Guest User

Untitled

a guest
Feb 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. package com.sirelon
  2.  
  3. import android.arch.paging.PagedList
  4. import android.arch.paging.PagedListAdapterHelper
  5. import android.support.v7.recyclerview.extensions.ListAdapterConfig
  6. import android.support.v7.util.ListUpdateCallback
  7. import android.widget.BaseAdapter
  8.  
  9. /**
  10. * Created on 2/7/18 12:35
  11. */
  12. abstract class PagedBaseAdapter<T>(listConfig: ListAdapterConfig<T>) : BaseAdapter(), ListUpdateCallback {
  13.  
  14. private val pagedHelper: PagedListAdapterHelper<T>
  15.  
  16. init {
  17. pagedHelper = PagedListAdapterHelper(this, listConfig)
  18. }
  19.  
  20. fun setPagedList(pagedList: PagedList<T>) = pagedHelper.setList(pagedList)
  21.  
  22. /* Methods from Base Adapter */
  23. override fun getCount() = pagedHelper.itemCount
  24.  
  25. override fun getItem(position: Int) = pagedHelper.getItem(position)
  26.  
  27. override fun getItemId(position: Int) = position.toLong()
  28.  
  29. /* Methods from ListUpdateCallback */
  30. override fun onChanged(position: Int, count: Int, payload: Any?) {
  31. notifyDataSetChanged()
  32. }
  33.  
  34. override fun onMoved(fromPosition: Int, toPosition: Int) {
  35. notifyDataSetChanged()
  36. }
  37.  
  38. override fun onInserted(position: Int, count: Int) {
  39. notifyDataSetChanged()
  40. }
  41.  
  42. override fun onRemoved(position: Int, count: Int) {
  43. notifyDataSetChanged()
  44. }
  45.  
  46. }
Add Comment
Please, Sign In to add comment