package com.sregg.android.tv.spotifyPlayer.adapters;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.PresenterSelector;
import com.sregg.android.tv.spotifyPlayer.Constants;
import java.util.Collection;
public abstract class PagingAdapter extends ArrayObjectAdapter {
public static final int LOAD_THRESHOLD = Constants.PAGE_LIMIT;
public PagingAdapter(PresenterSelector presenterSelector) {
super(presenterSelector);
}
public PagingAdapter(Presenter presenter) {
super(presenter);
}
public PagingAdapter() {
}
private int total;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
protected abstract void onLoadMore(int offset);
private boolean canLoadMore() {
return total > size();
}
public void addAll(int total, int index, Collection items) {
super.addAll(index, items);
this.total = total;
}
public void onItemSelected(Object item) {
if (!canLoadMore()) {
return;
}
int position = indexOf(item);
if (position > (size() - LOAD_THRESHOLD)) {
onLoadMore(size());
}
}
}