package com.beloo.chipslayoutmanager.sample.ui.adapter; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; import com.beloo.chipslayoutmanager.sample.ui.OnRemoveListener; import com.beloo.chipslayoutmanager.sample.R; import com.beloo.chipslayoutmanager.sample.entity.ChipsEntity; import com.beloo.chipslayoutmanager.sample.CircleTransform; public class ChipsAdapter extends RecyclerView.Adapter<ChipsAdapter.ViewHolder> { private List<ChipsEntity> chipsEntities; private OnRemoveListener onRemoveListener; private boolean isShowingPosition; public ChipsAdapter(List<ChipsEntity> chipsEntities, OnRemoveListener onRemoveListener) { this.chipsEntities = chipsEntities; this.onRemoveListener = onRemoveListener; } public ChipsAdapter(List<ChipsEntity> chipsEntities, OnRemoveListener onRemoveListener, boolean isShowingPosition) { this.chipsEntities = chipsEntities; this.onRemoveListener = onRemoveListener; this.isShowingPosition = isShowingPosition; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_chip, parent, false); return new ViewHolder(itemView); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.bindItem(chipsEntities.get(position)); } @Override public int getItemCount() { return chipsEntities.size(); } class ViewHolder extends RecyclerView.ViewHolder { private TextView tvDescription; private ImageView ivPhoto; private TextView tvName; private ImageButton ibClose; private TextView tvPosition; ViewHolder(View itemView) { super(itemView); tvDescription = (TextView) itemView.findViewById(R.id.tvDescription); ivPhoto = (ImageView) itemView.findViewById(R.id.ivPhoto); tvName = (TextView) itemView.findViewById(R.id.tvName); ibClose = (ImageButton) itemView.findViewById(R.id.ibClose); tvPosition = (TextView) itemView.findViewById(R.id.tvPosition); } void bindItem(ChipsEntity entity) { itemView.setTag(entity.getName()); if (TextUtils.isEmpty(entity.getDescription())) { tvDescription.setVisibility(View.GONE); } else { tvDescription.setVisibility(View.VISIBLE); tvDescription.setText(entity.getDescription()); } if (entity.getDrawableResId() != 0) { ivPhoto.setVisibility(View.VISIBLE); Glide.with(ivPhoto.getContext()).load(entity.getDrawableResId()) .transform(new CircleTransform(ivPhoto.getContext())).into(ivPhoto); } else { ivPhoto.setVisibility(View.GONE); } tvName.setText(entity.getName()); if (isShowingPosition) { tvPosition.setText(String.valueOf(getAdapterPosition())); } ibClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onRemoveListener != null && getAdapterPosition() != -1) { onRemoveListener.onItemRemoved(getAdapterPosition()); } } }); } } }