package com.cellasoft.univrapp.widget; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.util.AttributeSet; import android.widget.ListView; import com.cellasoft.univrapp.adapter.BaseListAdapter; import com.cellasoft.univrapp.utils.Lists; import com.cellasoft.univrapp.utils.UIUtils; import java.util.List; public class BaseListView<T> extends ListView { protected BaseListAdapter<T> adapter; public BaseListView(Context context) { super(context); init(context); } public BaseListView(Context context, AttributeSet attrs) { this(context, attrs, 0); init(context); } public BaseListView(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)); } 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 setItems(List<T> items) { if (items == null) { items = Lists.newArrayList(); } adapter.setItems(items); this.setSelection(1); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void addItems(List<T> items) { if (items != null) { // If the platform supports it, use addAll, otherwise add in loop if (UIUtils.hasHoneycomb()) { adapter.addAll(items); } else { for (T item : items) { adapter.add(item); } } } } }