package net.ggelardi.flucso.data; import java.util.ArrayList; import net.ggelardi.flucso.R; import net.ggelardi.flucso.R.drawable; import net.ggelardi.flucso.R.id; import net.ggelardi.flucso.R.layout; import net.ggelardi.flucso.serv.Commons; import net.ggelardi.flucso.serv.FFAPI; import net.ggelardi.flucso.serv.FFAPI.BaseFeed; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class PostDSelAdapter extends BaseAdapter { private final ArrayList<BaseFeed> feedlist; private final OnClickListener listener; private final LayoutInflater inflater; public PostDSelAdapter(Context context) { super(); feedlist = new ArrayList<BaseFeed>(); listener = (OnClickListener) context; inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return feedlist.size(); } @Override public BaseFeed getItem(int position) { return feedlist.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_post_dsel, parent, false); vh = new ViewHolder(); vh.img = (ImageView) view.findViewById(R.id.img_post_dsel); vh.txt = (TextView) view.findViewById(R.id.txt_post_dsel); vh.del = (ImageView) view.findViewById(R.id.img_post_dsel_del); vh.del.setOnClickListener(listener); view.setTag(vh); } else { vh = (ViewHolder) view.getTag(); } Commons.picasso(view.getContext().getApplicationContext()).load(feedlist.get(position).getAvatarUrl()).placeholder( R.drawable.nomugshot).into(vh.img); vh.txt.setText(feedlist.get(position).getName()); vh.del.setTag(Integer.valueOf(position)); return view; } public void clear() { feedlist.clear(); notifyDataSetChanged(); } public void append(BaseFeed item) { for (BaseFeed f : feedlist) if (f.isIt(item.id)) return; Log.v(getClass().getSimpleName(), "append: " + item.id); feedlist.add(item); notifyDataSetChanged(); } public void remove(int position) { if (position >= 0 && position < feedlist.size()) { Log.v(getClass().getSimpleName(), "remove: " + getItem(position).id); feedlist.remove(position); notifyDataSetChanged(); } } public String[] getIDs() { String[] res = new String[getCount()]; for (int i = 0; i < getCount(); i++) res[i] = feedlist.get(i).id; return res; } static class ViewHolder { ImageView img; TextView txt; ImageView del; } }