/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package adapters.selectionAdapters; import android.content.Context; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.TextView; import org.unfoldingword.mobile.R; import java.util.List; import view.ViewContentHelper; /** * Created by PJ Fechner on 2/27/15. * Adapter for Chapters */ public class ChaptersAdapter extends ArrayAdapter<GeneralRowInterface> { protected Context context; private int selectedRow; protected List<GeneralRowInterface> models; protected Fragment fragment = null; public ChaptersAdapter(Context context, List<GeneralRowInterface> models, Fragment fragment, int selectedRow) { super(context, R.layout.row_general); this.context = context; this.models = models; this.fragment = fragment; this.selectedRow = selectedRow; } public void update(List<GeneralRowInterface> rows){ update(rows, -1); } public void update(List<GeneralRowInterface> rows, int selectedRow){ models = rows; this.selectedRow = selectedRow; notifyDataSetChanged(); } @Override public int getCount() { return models.size(); } @Override public View getView(final int pos, View view, ViewGroup parent) { GeneralRowInterface row = models.get(pos); ViewHolderForGroup holder; if (view == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.row_general, parent, false); holder = new ViewHolderForGroup(); holder.title = (TextView) view.findViewById(R.id.itemTitle); holder.row = (LinearLayout) view.findViewById(R.id.row); view.setTag(holder); } else { holder = (ViewHolderForGroup) view.getTag(); } holder.title.setText(row.getTitle()); setColorChange(holder, ViewContentHelper.getColorForSelection(selectedRow == pos)); return view; } public void setColorChange(ViewHolderForGroup holder, int color) { holder.title.setTextColor(context.getResources().getColor(color)); } private static class ViewHolderForGroup { TextView title; LinearLayout row; } }