package com.cellasoft.univrapp.widget; import android.content.Context; import android.util.AttributeSet; import com.cellasoft.univrapp.R; import com.cellasoft.univrapp.adapter.BaseListAdapter; import com.cellasoft.univrapp.utils.Lists; import com.markupartist.android.widget.PullToRefreshListView; import java.util.List; public class BasePullListView<T> extends PullToRefreshListView { protected BaseListAdapter<T> adapter; public BasePullListView(Context context) { super(context); init(context); } public BasePullListView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public BasePullListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } protected void init(Context context) { setDivider(getResources().getDrawable( android.R.drawable.divider_horizontal_bright)); setSelector(R.drawable.list_selector_on_top); setDrawSelectorOnTop(true); } public void refresh() { adapter.refresh(); } public int size() { return adapter.getCount(); } public boolean isEmpty() { return adapter.getCount() == 0; } public void clean() { adapter.clear(); } public void addItems(List<T> items) { if (items != null) { adapter.addItems(items); } } public List<T> getItems() { return adapter.getItems(); } public void setItems(List<T> items) { if (items == null) { items = Lists.newArrayList(); } adapter.setItems(items); this.setSelection(1); } @Override public T getItemAtPosition(int position) { return adapter.getItem(position - 1); // -1 because add header // (PullToRefresh button) } }