package com.fernandomantoan.ramaispti.android.adapter;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.fernandomantoan.ramaispti.android.R;
import com.fernandomantoan.ramaispti.android.entity.Person;
import com.fernandomantoan.ramaispti.android.util.WordUtil;
public class PersonAdapter extends BaseAdapter {
private Activity activity;
private List<Person> people;
private int resourceViewId;
public PersonAdapter(Activity activity, int resourceViewId,
List<Person> people) {
this.activity = activity;
this.resourceViewId = resourceViewId;
this.people = people;
}
@Override
public int getCount() {
return people.size();
}
@Override
public Object getItem(int i) {
return people.get(i);
}
@Override
public long getItemId(int i) {
return people.get(i).hashCode();
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
return layoutInflater(position, viewGroup);
}
private View layoutInflater(int position, ViewGroup parent) {
Person person = people.get(position);
LayoutInflater inflater = activity.getLayoutInflater();
View view = inflater.inflate(resourceViewId, parent, false);
TextView nameTV = (TextView) view.findViewById(R.id.name);
// Se não suportar textAllCaps, deixa tudo maiúsculo manualmente
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
nameTV.setText(person.getName().toUpperCase());
else
nameTV.setText(person.getName());
TextView companyTV = (TextView) view.findViewById(R.id.company);
companyTV.setText(person.getCompany().getName());
TextView telephoneTV = (TextView) view.findViewById(R.id.telephone);
String aux = person.getTelephone().replace("/", "\n");
telephoneTV.setText(aux);
TextView roleTV = (TextView) view.findViewById(R.id.role);
if (person.getRole().getName() == null || "".equals(person.getRole().getName()))
roleTV.setVisibility(View.GONE);
else
roleTV.setText(WordUtil.capitalizeString(person.getRole().getName()));
if (person.getTelephone() == null || "".equals(person.getTelephone())) {
view.setEnabled(false);
view.setClickable(false);
}
return view;
}
}