package com.nolanlawson.logcat.data;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import com.nolanlawson.logcat.R;
import com.nolanlawson.logcat.db.CatlogDBHelper;
import com.nolanlawson.logcat.db.FilterItem;
public class FilterAdapter extends ArrayAdapter<FilterItem> {
public FilterAdapter(Context context, List<FilterItem> items) {
super(context, R.layout.filter_with_delete, items);
}
@Override
public boolean areAllItemsEnabled() {
return true;
}
@Override
public boolean isEnabled(int position) {
return true;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = position == 0 ? R.layout.filter_with_add : R.layout.filter_with_delete;
view = inflater.inflate(resId, parent, false);
final FilterItem filterItem = getItem(position);
TextView textView = (TextView) view.findViewById(android.R.id.text1);
if (position != 0) { // delete type
textView.setText(filterItem.getText());
// add listener to the delete button
Button button = (Button) view.findViewById(android.R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//delete
CatlogDBHelper dbHelper = null;
try {
dbHelper = new CatlogDBHelper(getContext());
dbHelper.deleteFilter(filterItem.getId());
} finally {
if (dbHelper != null) {
dbHelper.close();
}
}
remove(filterItem);
notifyDataSetChanged();
}
});
}
return view;
}
@Override
public int getItemViewType(int position) {
return position == 0 ? 0 : 1; // first one is 'add', the rest are different
}
@Override
public int getViewTypeCount() {
return 2;// one for 'add', one for the others
}
}