blob: 95c6a9ec177ceb5b0236f06bf97d8b6bd3a6bf08 [file] [log] [blame]
package org.apache.fineract.ui.adapters;
import android.content.Context;
import android.support.v4.content.ContextCompat;
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.LinearLayout;
import android.widget.TextView;
import org.apache.fineract.R;
import org.apache.fineract.data.models.deposit.DepositAccount;
import org.apache.fineract.injection.ApplicationContext;
import org.apache.fineract.ui.base.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* @author Rajan Maurya
* On 07/07/17.
*/
public class CustomerDepositAdapter extends
RecyclerView.Adapter<CustomerDepositAdapter.ViewHolder> {
private Context context;
private List<DepositAccount> customerDepositAccounts;
public OnItemClickListener onItemClickListener;
@Inject
public CustomerDepositAdapter(@ApplicationContext Context context) {
this.context = context;
customerDepositAccounts = new ArrayList<>();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_customer_deposit_accounts, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
DepositAccount customerDepositAccount = customerDepositAccounts.get(position);
holder.tvCustomerAccountIdentifier.setText(customerDepositAccount.getAccountIdentifier());
holder.tvDepositProduct.setText(customerDepositAccount.getProductIdentifier());
holder.tvAccountBalance.setText(String.valueOf(customerDepositAccount.getBalance()));
switch (customerDepositAccount.getState()) {
case ACTIVE:
holder.ivStatusIndicator.setColorFilter(
ContextCompat.getColor(context, R.color.deposit_green));
holder.tvAccountBalance.setTextColor(
ContextCompat.getColor(context, R.color.deposit_green));
break;
case CLOSED:
holder.ivStatusIndicator.setColorFilter(
ContextCompat.getColor(context, R.color.black));
break;
case LOCKED:
holder.ivStatusIndicator.setColorFilter(
ContextCompat.getColor(context, R.color.black));
break;
case PENDING:
holder.ivStatusIndicator.setColorFilter(
ContextCompat.getColor(context, R.color.light_yellow));
break;
}
}
@Override
public int getItemCount() {
return customerDepositAccounts.size();
}
public void setCustomerDepositAccounts(List<DepositAccount> customerDepositAccounts) {
this.customerDepositAccounts = customerDepositAccounts;
notifyDataSetChanged();
}
public void setOnItemClickListener(OnItemClickListener itemClickListener) {
onItemClickListener = itemClickListener;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,
View.OnLongClickListener {
@BindView(R.id.iv_status_indicator)
ImageView ivStatusIndicator;
@BindView(R.id.tv_customer_account_identifier)
TextView tvCustomerAccountIdentifier;
@BindView(R.id.tv_deposit_product)
TextView tvDepositProduct;
@BindView(R.id.tv_account_balance)
TextView tvAccountBalance;
@BindView(R.id.ll_deposit_accounts)
LinearLayout llDepositAccounts;
public ViewHolder(View v) {
super(v);
ButterKnife.bind(this, v);
llDepositAccounts.setOnClickListener(this);
}
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(v, getAdapterPosition());
}
@Override
public boolean onLongClick(View v) {
onItemClickListener.onItemLongPress(v, getAdapterPosition());
return true;
}
}
}