package net.bible.android.view.activity.bookmark; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import net.bible.android.activity.R; import net.bible.android.view.util.UiUtils; import net.bible.android.view.util.widget.BookmarkStyleAdapterHelper; import net.bible.service.db.bookmark.LabelDto; import net.bible.service.device.ScreenSettings; import java.util.List; /** * nice example here: http://shri.blog.kraya.co.uk/2010/04/19/android-multi-line-select-list/ * * @author Martin Denham [mjdenham at gmail dot com] * @see gnu.lgpl.License for license details.<br> * The copyright to this program is held by it's author. */ public class ManageLabelItemAdapter extends ArrayAdapter<LabelDto> { private int resource; private ManageLabels manageLabels; private BookmarkStyleAdapterHelper bookmarkStyleAdapterHelper = new BookmarkStyleAdapterHelper(); private static final String TAG = "ManageLabelItemAdapter"; public ManageLabelItemAdapter(Context context, int resource, List<LabelDto> items, ManageLabels manageLabels) { super(context, resource, items); this.resource = resource; this.manageLabels = manageLabels; } @Override public View getView(int position, View convertView, ViewGroup parent) { final LabelDto labelDto = getItem(position); View rowView; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowView = inflater.inflate(resource, parent, false); } else { rowView = convertView; } TextView nameView = (TextView) rowView.findViewById(R.id.labelName); nameView.setText(labelDto.getName()); if (labelDto.getBookmarkStyle()==null) { nameView.setBackgroundColor(UiUtils.getThemeBackgroundColour(getContext())); } else { bookmarkStyleAdapterHelper.styleView(nameView, labelDto.getBookmarkStyle(), getContext(), false, false); } ImageView editButton = (ImageView)rowView.findViewById(R.id.editLabel); editButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { manageLabels.editLabel(labelDto); } }); ImageView deleteButton = (ImageView)rowView.findViewById(R.id.deleteLabel); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { manageLabels.delete(labelDto); } }); if (ScreenSettings.isNightMode()) { editButton.setImageResource(R.drawable.ic_pen_24dp); deleteButton.setImageResource(R.drawable.ic_delete_24dp); } else { editButton.setImageResource(R.drawable.ic_pen_24dp_black); deleteButton.setImageResource(R.drawable.ic_delete_24dp_black); } return rowView; } /** * Prevent list item rows being highlighted when pressing the delete or edit button */ @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEnabled(int position) { return false; } }