package com.mozu.mozuandroidinstoreassistant.app.customer.adapters; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Filter; import android.widget.TextView; import com.mozu.api.contracts.customer.CustomerAccount; import com.mozu.mozuandroidinstoreassistant.app.R; import butterknife.ButterKnife; import butterknife.InjectView; public class CustomerLookupAdapter extends ArrayAdapter<CustomerAccount> { public CustomerLookupAdapter(Context context) { super(context, R.layout.customer_list_item); } @Override public View getView(int position, View convertView, ViewGroup parent) { CustomerLookupViewHolder viewHolder; if (convertView != null) { viewHolder = (CustomerLookupViewHolder) convertView.getTag(); } else { convertView = LayoutInflater.from(getContext()).inflate(R.layout.customer_lookup_item, parent, false); viewHolder = new CustomerLookupViewHolder(convertView); convertView.setTag(viewHolder); } CustomerAccount customer = getItem(position); viewHolder.customerLookup.setText(buildCustomerLookupItem(customer)); return convertView; } @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { return null; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { } @Override public CharSequence convertResultToString(Object resultValue) { CustomerAccount customerAccount = (CustomerAccount) resultValue; return customerAccount.getFirstName() + " " + customerAccount.getLastName() + "-" + customerAccount.getEmailAddress(); } }; } private String buildCustomerLookupItem(CustomerAccount customer) { StringBuilder builder = new StringBuilder(); builder.append(customer.getLastName()) .append(",") .append(customer.getFirstName()) .append(" - (") .append(customer.getId()) .append(") ") .append(customer.getEmailAddress()); return builder.toString(); } class CustomerLookupViewHolder { @InjectView(R.id.customer_lookup) TextView customerLookup; public CustomerLookupViewHolder(View view) { ButterKnife.inject(this, view); } } }