package org.maepaysoh.maepaysoh.adapters; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import java.util.ArrayList; import java.util.List; import org.maepaysoh.maepaysoh.R; import org.maepaysoh.maepaysohsdk.models.Party; /** * Created by Ye Lin Aung on 15/08/04. */ public class PartyAdapter extends RecyclerView.Adapter<PartyAdapter.PartyViewHolder> { private Context mContext; private List<Party> mParties; private ClickInterface mClickInterface; public PartyAdapter() { mParties = new ArrayList<>(); } public void setParties(List<Party> parties) { mParties = parties; notifyDataSetChanged(); } @Override public PartyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { mContext = parent.getContext(); View view = LayoutInflater.from(mContext).inflate(R.layout.party_item_view, parent, false); return new PartyViewHolder(view); } @Override public void onBindViewHolder(PartyViewHolder holder, int position) { Party party = mParties.get(position); holder.mPartyNameMyanmar.setText(party.getPartyName()); holder.mPartyNameEnglish.setText(party.getPartyNameEnglish()); List<String> leaders = party.getLeadership(); holder.mPartyLeader.setText(""); //Reset the textview unless you want some weird shit to happen for (String leader : leaders) { if (leaders.indexOf(leader) == leaders.size() - 1) { holder.mPartyLeader.append(leader); } else { holder.mPartyLeader.append(leader + "၊ "); } } Glide.with(mContext) .load(party.getPartyFlag()) .centerCrop() .diskCacheStrategy(DiskCacheStrategy.ALL) .into(holder.mPartyFlag); } public void setOnItemClickListener(ClickInterface clickInterface) { mClickInterface = clickInterface; } @Override public int getItemCount() { return mParties != null ? mParties.size() : 0; } public interface ClickInterface { void onItemClick(View view, int position); } class PartyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { private TextView mPartyNameEnglish; private TextView mPartyNameMyanmar; private TextView mPartyLeader; private ImageView mPartyFlag; public PartyViewHolder(View itemView) { super(itemView); itemView.setOnClickListener(this); mPartyNameEnglish = (TextView) itemView.findViewById(R.id.party_name_english); mPartyNameMyanmar = (TextView) itemView.findViewById(R.id.party_name_myanmar); mPartyLeader = (TextView) itemView.findViewById(R.id.party_leader); mPartyFlag = (ImageView) itemView.findViewById(R.id.party_flag); } @Override public void onClick(View view) { if (mClickInterface != null) { mClickInterface.onItemClick(view, getAdapterPosition()); } } } }