package it.fdev.utils;
import it.fdev.unisaconnect.R;
import it.fdev.unisaconnect.data.StaffMemberSummary;
import java.util.ArrayList;
import java.util.Collection;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
public class ListAdapterStaff extends ArrayAdapter<StaffMemberSummary> {
private int layout;
// private ArrayList<StaffMemberSummary> itemsList;
private ImageLoader imageLoader;
private static class ViewHolder {
private ImageView imageView;
// private ImageView genericImageView;
private TextView nameView;
// private TextView roleView;
private TextView emailView;
}
public ListAdapterStaff(Context context, int layout, ArrayList<StaffMemberSummary> itemsList) {
super(context, layout, itemsList);
this.layout = layout;
// this.itemsList = itemsList;
this.imageLoader = ImageLoader.getInstance();
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(layout, null);
viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.row_icon);
// viewHolder.genericImageView = (ImageView) view.findViewById(R.id.row_icon_generic);
viewHolder.nameView = (TextView) convertView.findViewById(R.id.row_name);
// viewHolder.roleView = (TextView) convertView.findViewById(R.id.row_role);
viewHolder.emailView = (TextView) convertView.findViewById(R.id.row_email);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
// viewHolder.imageView.setImageDrawable(null);
imageLoader.displayImage(null, viewHolder.imageView);
}
StaffMemberSummary item = getItem(position);
viewHolder.nameView.setText(item.getNome());
// viewHolder.roleView.setText(item.getRuolo());
viewHolder.emailView.setText(item.getEmail());
// viewHolder.imageView.setImageResource(R.drawable.generic_profile_icon);
if (item.iconURL != null) {
imageLoader.displayImage(item.iconURL, viewHolder.imageView, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String arg0, View arg1) {
// ((ImageView) arg1).setImageResource(R.drawable.generic_profile_icon);
}
@Override
public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
// ((ImageView) arg1).setImageResource(R.drawable.generic_profile_icon);
try {
imageLoader.displayImage(null, ((ImageView) arg1));
} catch(IllegalArgumentException e) {
// View was already deleted. Ignore
}
}
@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
// ((ImageView) arg1).setImageBitmap(arg2);
}
@Override
public void onLoadingCancelled(String arg0, View arg1) {
// ((ImageView) arg1).setImageResource(R.drawable.generic_profile_icon);
// imageLoader.displayImage(null, ((ImageView) arg1));
}
});
} else {
// viewHolder.imageView.setImageResource(R.drawable.generic_profile_icon);
// imageLoader.displayImage(null, viewHolder.imageView);
}
return convertView;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void addAll(Collection<? extends StaffMemberSummary> collection) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
super.addAll(collection);
} else {
for (StaffMemberSummary entry : collection) {
super.add(entry);
}
}
}
}