package it.fdev.utils;
import it.fdev.unisaconnect.R;
import it.fdev.utils.ListAdapterDrawer.ListItemDrawer;
import java.util.ArrayList;
import java.util.Collection;
import android.annotation.TargetApi;
import android.content.Context;
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;
public class ListAdapterDrawer extends ArrayAdapter<ListItemDrawer> {
private final static int LAYOUT = R.layout.drawer_row;
private ArrayList<ListItemDrawer> itemsList;
private static class ViewHolder {
private ImageView imageView;
private TextView textView;
}
public ListAdapterDrawer(Context context, ArrayList<ListItemDrawer> itemsList) {
super(context, LAYOUT, itemsList);
this.itemsList = itemsList;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(LAYOUT, null);
if (view != null) {
viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) view.findViewById(R.id.row_icon);
viewHolder.textView = (TextView) view.findViewById(R.id.row_title);
view.setTag(viewHolder);
}
} else {
view = convertView;
viewHolder = (ViewHolder) convertView.getTag();
}
if (viewHolder != null) {
ListItemDrawer item = itemsList.get(position);
if (item != null) {
viewHolder.textView.setText(item.text);
view.setBackgroundResource(R.color.drawer_background);
if (item.testing) {
viewHolder.textView.setTextColor(parent.getResources().getColor(R.color.testing_red));
} else {
viewHolder.textView.setTextColor(parent.getResources().getColor(R.color.drawer_text_color));
}
viewHolder.imageView.setImageDrawable(null);
viewHolder.imageView.setVisibility(View.VISIBLE);
if(item.iconRes != R.drawable.transparent && item.iconRes != -1) {
viewHolder.imageView.setImageResource(item.iconRes);
} else {
viewHolder.imageView.setVisibility(View.INVISIBLE);
}
}
}
return view;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void addAll(Collection<? extends ListItemDrawer> collection) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
super.addAll(collection);
} else {
for (ListItemDrawer entry : collection) {
super.add(entry);
}
}
}
public static class ListItemDrawer {
private String text = null;
private int iconRes = -1;
// it testing=true the text is red
private boolean testing = false;
public ListItemDrawer(String tag, int iconRes) {
this(tag, iconRes, false);
}
public ListItemDrawer(String tag, int iconRes, boolean testing) {
this.text = tag;
this.iconRes = iconRes;
this.testing = testing;
}
}
}