Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sirelon
- import android.arch.paging.PagedList
- import android.arch.paging.PagedListAdapterHelper
- import android.support.v7.recyclerview.extensions.ListAdapterConfig
- import android.support.v7.util.ListUpdateCallback
- import android.widget.BaseAdapter
- /**
- * Created on 2/7/18 12:35
- */
- abstract class PagedBaseAdapter<T>(listConfig: ListAdapterConfig<T>) : BaseAdapter(), ListUpdateCallback {
- private val pagedHelper: PagedListAdapterHelper<T>
- init {
- pagedHelper = PagedListAdapterHelper(this, listConfig)
- }
- fun setPagedList(pagedList: PagedList<T>) = pagedHelper.setList(pagedList)
- /* Methods from Base Adapter */
- override fun getCount() = pagedHelper.itemCount
- override fun getItem(position: Int) = pagedHelper.getItem(position)
- override fun getItemId(position: Int) = position.toLong()
- /* Methods from ListUpdateCallback */
- override fun onChanged(position: Int, count: Int, payload: Any?) {
- notifyDataSetChanged()
- }
- override fun onMoved(fromPosition: Int, toPosition: Int) {
- notifyDataSetChanged()
- }
- override fun onInserted(position: Int, count: Int) {
- notifyDataSetChanged()
- }
- override fun onRemoved(position: Int, count: Int) {
- notifyDataSetChanged()
- }
- }
Add Comment
Please, Sign In to add comment