package ca.etsmtl.applets.etsmobile.ui.adapter;
import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import ca.etsmtl.applets.etsmobile.model.MyMenuItem;
import ca.etsmtl.applets.etsmobile2.R;
public class MenuAdapter extends ArrayAdapter<MyMenuItem> {
private static final int SEPARATOR = 0;
private static final int ITEM = 1;
private final LayoutInflater layoutInflater;
private final Resources resources;
private final MyMenuItem[] objects;
public MenuAdapter(Context context, MyMenuItem[] objects) {
super(context, R.layout.menu_item, objects);
this.objects = objects;
layoutInflater = LayoutInflater.from(getContext());
resources = getContext().getResources();
}
@Override
public MyMenuItem getItem(int position) {
return objects[position];
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return getItem(position).mClass == null ? SEPARATOR : ITEM;
}
@Override
public boolean isEnabled(int position) {
return getItemViewType(position) == ITEM;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
int itemViewType = getItemViewType(position);
if (convertView != null) {
holder = (ViewHolder) convertView.getTag();
} else {
if (itemViewType == ITEM) {
convertView = layoutInflater.inflate(R.layout.menu_item, parent, false);
} else {
convertView = layoutInflater.inflate(R.layout.menu_item_separator, parent, false);
}
holder = new ViewHolder();
holder.title = (TextView)convertView.findViewById(R.id.text1);
convertView.setTag(holder);
}
final MyMenuItem myMenuItem = getItem(position);
if (myMenuItem != null) {
holder.title.setText(myMenuItem.title);
}
if (itemViewType == ITEM) {
holder.title.setCompoundDrawablesWithIntrinsicBounds(resources.getDrawable(myMenuItem.resId), null, null,
null);
} else {
holder.title.setCompoundDrawables(null, null, null, null);
}
return convertView;
}
class ViewHolder {
TextView title;
}
}