package com.jparkie.aizoban.views.adapters;
import android.content.Context;
import android.database.Cursor;
import android.widget.BaseAdapter;
import static nl.qbusict.cupboard.CupboardFactory.cupboard;
public abstract class BaseCursorAdapter extends BaseAdapter {
protected Context mContext;
protected Class<?> mClassType;
protected Cursor mCursor;
public BaseCursorAdapter(Context context, Class<?> classType) {
mContext = context;
mClassType = classType;
mCursor = null;
}
@Override
public int getCount() {
if (mCursor != null) {
return mCursor.getCount();
} else {
return 0;
}
}
@Override
public Object getItem(int position) {
if (mCursor != null) {
mCursor.moveToPosition(position);
if (mClassType != null) {
return cupboard().withCursor(mCursor).get(mClassType);
}
}
return null;
}
@Override
public long getItemId(int position) {
return position;
}
public Cursor getCursor() {
return mCursor;
}
public void setCursor(Cursor newCursor) {
if (mCursor == newCursor) {
return;
}
if (mCursor != null) {
mCursor.close();
}
mCursor = newCursor;
if (mCursor != null) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
}