package net.ggelardi.flucso.data; import net.ggelardi.flucso.R; import net.ggelardi.flucso.serv.Commons; import net.ggelardi.flucso.serv.FFAPI.Like; import android.content.Context; import android.text.Html; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; public class EntryLikesAdapter extends EntryBaseAdapter { public EntryLikesAdapter(Context context, OnClickListener clickListener) { super(context, clickListener); } @Override public int getCount() { return entry != null ? entry.likes.size() : 0; } @Override public Object getItem(int position) { return (position < 0 || position >= getCount()) ? null : entry.likes.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; View view = convertView; if (view == null) { view = inflater.inflate(R.layout.item_entry_like, parent, false); holder = new ViewHolder(); holder.imgFrom = (ImageView) view.findViewById(R.id.img_like_from); holder.txtFrom = (TextView) view.findViewById(R.id.txt_like_from); holder.txtTime = (TextView) view.findViewById(R.id.txt_like_time); holder.txtBody = (TextView) view.findViewById(R.id.txt_like_body); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } Like like = (Like) getItem(position); if (like.placeholder) { holder.imgFrom.setVisibility(View.GONE); holder.txtFrom.setVisibility(View.GONE); holder.txtTime.setVisibility(View.GONE); holder.txtBody.setText(Html.fromHtml(like.body)); holder.txtBody.setVisibility(View.VISIBLE); } else { holder.imgFrom.setVisibility(View.VISIBLE); holder.txtFrom.setVisibility(View.VISIBLE); holder.txtTime.setVisibility(View.VISIBLE); holder.txtBody.setVisibility(View.GONE); Commons.picasso(view.getContext().getApplicationContext()).load(like.from.getAvatarUrl()).placeholder( R.drawable.nomugshot).into(holder.imgFrom); holder.txtFrom.setCompoundDrawablesRelativeWithIntrinsicBounds(like.from.locked ? R.drawable.entry_private : 0, 0, 0, 0); holder.txtFrom.setText(like.from.getName()); holder.txtTime.setText(like.getFuzzyTime()); } return view; } public static class ViewHolder { public ImageView imgFrom; public TextView txtFrom; public TextView txtTime; public TextView txtBody; } @Override public int getIcon() { return entry != null && entry.canUnlike() ? R.drawable.entry_liked : R.drawable.entry_like; } }