package net.ggelardi.flucso.data; import net.ggelardi.flucso.R; import net.ggelardi.flucso.serv.Commons; import net.ggelardi.flucso.serv.Commons.PK; import net.ggelardi.flucso.serv.FFAPI.Comment; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.text.Html; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Callback; public class EntryCommsAdapter extends EntryBaseAdapter { public EntryCommsAdapter(Context context, OnClickListener clickListener) { super(context, clickListener); } @Override public int getCount() { return entry != null ? entry.comments.size() : 0; } @Override public Comment getItem(int position) { return entry.comments.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; View view = convertView; if (view == null) { view = inflater.inflate(R.layout.item_entry_comm, parent, false); vh = new ViewHolder(); vh.imgFrom = (ImageView) view.findViewById(R.id.img_comm_from); vh.txtFrom = (TextView) view.findViewById(R.id.txt_comm_from); vh.txtTime = (TextView) view.findViewById(R.id.txt_comm_time); vh.txtBody = (TextView) view.findViewById(R.id.txt_comm_body); vh.imgPict = (ImageView) view.findViewById(R.id.img_comm_media); vh.imgMenu = (ImageView) view.findViewById(R.id.img_comm_popup); vh.imgMenu.setOnClickListener(listener); view.setTag(vh); } else { vh = (ViewHolder) view.getTag(); } vh.imgMenu.setTag(Integer.valueOf(position)); Comment comm = getItem(position); vh.txtBody.setText(Html.fromHtml(comm.body)); vh.imgMenu.setVisibility(View.GONE); vh.imgPict.setVisibility(View.GONE); if (comm.placeholder) { vh.imgFrom.setVisibility(View.GONE); vh.txtFrom.setVisibility(View.GONE); vh.txtTime.setVisibility(View.GONE); } else { vh.imgFrom.setVisibility(View.VISIBLE); vh.txtFrom.setVisibility(View.VISIBLE); vh.txtTime.setVisibility(View.VISIBLE); Commons.picasso(context).load(comm.from.getAvatarUrl()).placeholder(R.drawable.nomugshot).into(vh.imgFrom); vh.txtFrom.setCompoundDrawablesRelativeWithIntrinsicBounds(comm.from.locked ? R.drawable.entry_private : 0, 0, 0, 0); vh.txtFrom.setText(comm.from.getName()); String tl = comm.getFuzzyTime(); if (comm.via != null && !TextUtils.isEmpty(comm.via.name.trim())) tl += new StringBuilder().append(" ").append(context.getString(R.string.source_prefix)).append( " ").append(comm.via.name.trim()).toString(); vh.txtTime.setText(tl); if (comm.canEdit() || comm.canDelete()) vh.imgMenu.setVisibility(View.VISIBLE); // picture in comment int imco = session.getPrefs().getInt(PK.ENTR_IMCO, 1); if (imco == 2 || (imco == 1 && Commons.isOnWIFI(context))) { final String img = comm.getFirstImage(); if (!TextUtils.isEmpty(img)) { final ImageView iref = vh.imgPict; Commons.picasso(context).load(img).placeholder(R.drawable.ic_action_picture).error( android.R.drawable.ic_dialog_alert).into(vh.imgPict, new Callback() { @Override public void onError() { iref.setVisibility(View.GONE); } @Override public void onSuccess() { iref.setVisibility(View.VISIBLE); iref.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(img)); context.startActivity(i); } }); } }); } } } return view; } public static class ViewHolder { public ImageView imgFrom; public TextView txtFrom; public TextView txtTime; public TextView txtBody; public ImageView imgMenu; public ImageView imgPict; } @Override public int getIcon() { return R.drawable.entry_comment; } }