package com.fastaccess.ui.adapter; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.AppCompatImageView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.fastaccess.R; import com.fastaccess.data.dao.BranchesModel; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by Kosh on 09 Apr 2017, 10:55 AM */ public class BranchesAdapter extends BaseAdapter { private List<BranchesModel> branches; private Context context; public BranchesAdapter(Context context, List<BranchesModel> branches) { this.branches = branches; this.context = context; } @Override public int getCount() { return branches.size(); } @Override public BranchesModel getItem(int position) { return branches.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { return getRowView(position, convertView, parent, false); } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { return getRowView(position, convertView, parent, true); } @NonNull private View getRowView(int position, View convertView, ViewGroup parent, boolean isDropDown) { ViewHolder viewHolder; if (convertView == null) { if (!isDropDown) { convertView = LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, parent, false); } else { convertView = LayoutInflater.from(context).inflate(R.layout.branches_row_item, parent, false); } viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } BranchesModel branchesModel = getItem(position); if (viewHolder.image != null && isDropDown) { viewHolder.image.setImageResource(branchesModel.isTag() ? R.drawable.ic_label : R.drawable.ic_branch); viewHolder.image.setContentDescription(branchesModel.getName()); } viewHolder.title.setText(branchesModel.getName()); return convertView; } static class ViewHolder { @Nullable @BindView(R.id.image) AppCompatImageView image; @BindView(android.R.id.text1) TextView title; ViewHolder(View view) {ButterKnife.bind(this, view);} } }