| package org.apache.fineract.ui.adapters; |
| |
| import android.content.Context; |
| import androidx.recyclerview.widget.RecyclerView; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.widget.ImageView; |
| import android.widget.TextView; |
| |
| import org.apache.fineract.R; |
| import org.apache.fineract.injection.ApplicationContext; |
| import org.apache.fineract.ui.views.TextDrawable; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import javax.inject.Inject; |
| |
| import butterknife.BindView; |
| import butterknife.ButterKnife; |
| |
| /** |
| * @author Rajan Maurya |
| * On 15/08/17. |
| */ |
| public class BeneficiaryAdapter extends RecyclerView.Adapter<BeneficiaryAdapter.ViewHolder> { |
| |
| private Context context; |
| private List<String> beneficiary; |
| private boolean deleteImageStatus; |
| |
| @Inject |
| public BeneficiaryAdapter(@ApplicationContext Context context) { |
| this.context = context; |
| beneficiary = new ArrayList<>(); |
| } |
| |
| @Override |
| public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { |
| View view = LayoutInflater.from(parent.getContext()) |
| .inflate(R.layout.item_beneficiary, parent, false); |
| return new ViewHolder(view); |
| } |
| |
| @Override |
| public void onBindViewHolder(ViewHolder holder, int position) { |
| String identifier = beneficiary.get(position); |
| |
| TextDrawable drawable = TextDrawable.builder() |
| .buildRound(identifier.substring(0, 1), R.color.white); |
| holder.ivCustomerImage.setImageDrawable(drawable); |
| |
| holder.tvIdentifier.setText(identifier); |
| |
| if (deleteImageStatus) { |
| holder.ivRemoveIdentifier.setVisibility(View.INVISIBLE); |
| } |
| } |
| |
| @Override |
| public int getItemCount() { |
| return beneficiary.size(); |
| } |
| |
| public void setBeneficiary(String beneficiary) { |
| if (!this.beneficiary.contains(beneficiary)) { |
| this.beneficiary.add(beneficiary); |
| notifyDataSetChanged(); |
| } |
| } |
| |
| public void setAllBeneficiary(List<String> beneficiary) { |
| this.beneficiary.clear(); |
| this.beneficiary.addAll(beneficiary); |
| notifyDataSetChanged(); |
| } |
| |
| public List<String> getAllBeneficiary() { |
| return beneficiary; |
| } |
| |
| public void hideDeleteImageStatus(boolean deleteImageStatus) { |
| this.deleteImageStatus = deleteImageStatus; |
| } |
| |
| public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, |
| View.OnLongClickListener { |
| |
| @BindView(R.id.iv_customer_picture) |
| ImageView ivCustomerImage; |
| |
| @BindView(R.id.tv_identifier) |
| TextView tvIdentifier; |
| |
| @BindView(R.id.iv_remove_identifier) |
| ImageView ivRemoveIdentifier; |
| |
| public ViewHolder(View v) { |
| super(v); |
| ButterKnife.bind(this, v); |
| ivRemoveIdentifier.setOnClickListener(this); |
| } |
| |
| @Override |
| public void onClick(View v) { |
| beneficiary.remove(getAdapterPosition()); |
| notifyDataSetChanged(); |
| } |
| |
| @Override |
| public boolean onLongClick(View v) { |
| return true; |
| } |
| } |
| } |