package org.wordpress.android.ui.posts; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.justsystems.hpb.pad.R; public class PostListAdapter extends BaseAdapter { private Context context; private final ArrayList<Holder> items = new ArrayList<Holder>(); public PostListAdapter(Context context) { this.context = context; } public void clear() { this.items.clear(); } public int getCount() { return items.size(); } public Holder getItem(int position) { return items.get(position); } public long getItemId(int position) { return getItem(position).mPostID; } public void add(int mPostID, String mTitle, String mDateCreatedFormatted, String mStatus) { Holder holder = new Holder(mPostID, mTitle, mDateCreatedFormatted, mStatus); items.add(holder); } public void addDraft(int mPostID, String mTitle, String mDateCreatedFormatted, String mStatus) { Holder holder = new Holder(mPostID, mTitle, mDateCreatedFormatted, mStatus); items.add(0, holder); } public View getView(int position, View convertView, ViewGroup parent) { View pv = convertView; ViewWrapper wrapper = null; if (pv == null) { LayoutInflater inflater = LayoutInflater.from(context); pv = inflater.inflate(R.layout.row_post_page, parent, false); wrapper = new ViewWrapper(pv); pv.setTag(wrapper); } else { wrapper = (ViewWrapper) pv.getTag(); } final Holder holder = getItem(position); String date = holder.mDateCreatedFormatted; String status_text = holder.mStatus; pv.setTag(R.id.row_post_id, holder.mPostID); pv.setId(Integer.valueOf(holder.mPostID)); String titleText = holder.mTitle; if (titleText == "") titleText = "(" + context.getResources().getText(R.string.untitled) + ")"; wrapper.title.setText(titleText); wrapper.date.setText(date); wrapper.status.setText(status_text); return pv; } private static class Holder { private int mPostID; private String mTitle; private String mDateCreatedFormatted; private String mStatus; private Holder(int mPostID, String mTitle, String mDateCreatedFormatted, String mStatus) { this.mPostID = mPostID; this.mTitle = mTitle; this.mDateCreatedFormatted = mDateCreatedFormatted; this.mStatus = mStatus; } } private static class ViewWrapper { private TextView title = null; private TextView date = null; private TextView status = null; private ViewWrapper(View base) { this.title = (TextView) base.findViewById(R.id.title); this.date = (TextView) base.findViewById(R.id.date); this.status = (TextView) base.findViewById(R.id.status); } } }