| package org.apache.fineract.ui.adapters; |
| |
| import android.content.Context; |
| import androidx.appcompat.widget.AppCompatImageView; |
| import androidx.recyclerview.widget.RecyclerView; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.widget.LinearLayout; |
| import android.widget.TextView; |
| |
| import org.apache.fineract.R; |
| import org.apache.fineract.data.models.customer.Customer; |
| import org.apache.fineract.injection.ApplicationContext; |
| import org.apache.fineract.ui.base.OnItemClickListener; |
| import org.apache.fineract.utils.ImageLoaderUtils; |
| import org.apache.fineract.utils.StatusUtils; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import javax.inject.Inject; |
| |
| import butterknife.BindView; |
| import butterknife.ButterKnife; |
| import de.hdodenhof.circleimageview.CircleImageView; |
| |
| /** |
| * @author Rajan Maurya |
| * On 20/06/17. |
| */ |
| public class CustomerAdapter extends RecyclerView.Adapter<CustomerAdapter.ViewHolder> { |
| |
| private Context context; |
| private List<Customer> customers; |
| public OnItemClickListener onItemClickListener; |
| |
| @Inject |
| public CustomerAdapter(@ApplicationContext Context context) { |
| this.context = context; |
| customers = new ArrayList<>(); |
| } |
| |
| @Override |
| public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { |
| View view = LayoutInflater.from(parent.getContext()) |
| .inflate(R.layout.item_customer, parent, false); |
| return new ViewHolder(view); |
| } |
| |
| @Override |
| public void onBindViewHolder(ViewHolder holder, int position) { |
| Customer customer = customers.get(position); |
| holder.tvCustomerName.setText(context.getString(R.string.customer_name, |
| customer.getGivenName(), customer.getSurname() )); |
| |
| if (customer.getAssignedEmployee() != null) { |
| holder.tvAssignedEmployee.setText(context.getString(R.string.assigned_employee_list, |
| customer.getAssignedEmployee())); |
| } else { |
| holder.tvAssignedEmployee.setText(context.getString(R.string.assigned_employee_list, |
| context.getString(R.string.not_assigned))); |
| } |
| |
| ImageLoaderUtils imageLoaderUtils = new ImageLoaderUtils(context); |
| imageLoaderUtils.loadImage(imageLoaderUtils.buildCustomerPortraitImageUrl( |
| customer.getIdentifier()), holder.ivCustomerImage, |
| R.drawable.ic_account_circle_black_24dp); |
| |
| if (customer.getCurrentState() != null) { |
| StatusUtils.setCustomerStatus(customer.getCurrentState(), holder.ivStausIndicator, |
| context); |
| } else { |
| holder.ivStausIndicator.setVisibility(View.GONE); |
| } |
| } |
| |
| @Override |
| public int getItemCount() { |
| return customers.size(); |
| } |
| |
| public void setCustomers(List<Customer> customerList) { |
| customers = customerList; |
| notifyDataSetChanged(); |
| } |
| |
| public void setMoreCustomers(List<Customer> customerList) { |
| customers.addAll(customerList); |
| notifyDataSetChanged(); |
| } |
| |
| public void setOnItemClickListener(OnItemClickListener itemClickListener) { |
| onItemClickListener = itemClickListener; |
| } |
| |
| public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, |
| View.OnLongClickListener { |
| |
| @BindView(R.id.iv_customer_picture) |
| CircleImageView ivCustomerImage; |
| |
| @BindView(R.id.tv_customer_name) |
| TextView tvCustomerName; |
| |
| @BindView(R.id.tv_assigned_employee) |
| TextView tvAssignedEmployee; |
| |
| @BindView(R.id.ll_customer) |
| LinearLayout llCustomer; |
| |
| @BindView(R.id.iv_status_indicator) |
| AppCompatImageView ivStausIndicator; |
| |
| public ViewHolder(View v) { |
| super(v); |
| ButterKnife.bind(this, v); |
| llCustomer.setOnClickListener(this); |
| } |
| |
| @Override |
| public void onClick(View v) { |
| if (onItemClickListener != null) { |
| onItemClickListener.onItemClick(v, getAdapterPosition()); |
| } |
| } |
| |
| @Override |
| public boolean onLongClick(View v) { |
| if (onItemClickListener != null) { |
| onItemClickListener.onItemLongPress(v, getAdapterPosition()); |
| } |
| return true; |
| } |
| } |
| } |