package com.lesgens.blindr.adapters; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import com.lesgens.blindr.R; import com.lesgens.blindr.models.Match; public class MatchAdapter extends ArrayAdapter<Match>{ private Context mContext; private LayoutInflater mInflater = null; private ArrayList<Match> matches; public MatchAdapter(Context context, ArrayList<Match> chatValue) { super(context,R.layout.chat_even, chatValue); mContext = context; matches = chatValue; } static class ViewHolder { public TextView name; public TextView mutual; public ImageView avatar; } private LayoutInflater getInflater(){ if(mInflater == null) mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); return mInflater; } @Override public View getView(int position, View convertView, ViewGroup parent) { View rowView; if(convertView == null){ // Only inflating if necessary is great for performance rowView = getInflater().inflate(R.layout.match_item, parent, false); ViewHolder holder = new ViewHolder(); holder.name = (TextView) rowView.findViewById(R.id.name); holder.mutual = (TextView) rowView.findViewById(R.id.mutual); holder.avatar = (ImageView) rowView.findViewById(R.id.avatar); rowView.setTag(holder); } else{ rowView = convertView; } ViewHolder holder = (ViewHolder) rowView.getTag(); final Match match = matches.get(position); if(match.isMutual()){ holder.name.setText(match.getRealName()); } else{ holder.name.setText(match.getFakeName()); } holder.avatar.setImageBitmap(match.getMatchedUser().getAvatar()); if(match.isMutual()){ holder.mutual.setText("Click here to chat"); } else{ holder.mutual.setText("Pending request"); } return rowView; } }