package com.mistareader.NavigationDrawer;
import android.content.Context;
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.mistareader.R;
import java.util.ArrayList;
public class NavDrawer_Adapter extends ArrayAdapter<NavDrawer_MenuItem> {
private LayoutInflater inflater;
public NavDrawer_Adapter(Context context, int textViewResourceId, ArrayList<NavDrawer_MenuItem> objects) {
super(context, textViewResourceId, objects);
this.inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
NavDrawer_MenuItem menuItem = this.getItem(position);
if (menuItem.isSection) {
view = getSectionView(convertView, parent, menuItem);
}
else {
view = getItemView(convertView, parent, menuItem);
}
return view;
}
public View getItemView(View convertView, ViewGroup parentView, NavDrawer_MenuItem navDrawerItem) {
NavMenuItemHolder holder;
View v;
if (convertView == null) {
v = inflater.inflate(R.layout.navdrawer_item, parentView, false);
holder = new NavMenuItemHolder();
holder.labelView = (TextView) v.findViewById(R.id.navmenuitem_label);
holder.iconView = (ImageView) v.findViewById(R.id.navmenuitem_icon);
holder.counterView = (TextView) v.findViewById(R.id.navmenuitem_counter);
v.setTag(holder);
}
else {
v = convertView;
holder = (NavMenuItemHolder) v.getTag();
}
holder.labelView.setText(navDrawerItem.label);
holder.iconView.setImageResource(navDrawerItem.icon);
if (navDrawerItem.newSubs == 0) {
holder.counterView.setVisibility(View.GONE);
}
else {
holder.counterView.setVisibility(View.VISIBLE);
holder.counterView.setText(""+navDrawerItem.newSubs);
}
// if (menuItem.isExpandable()) {
// labelView.setTextColor(convertView.getResources().getColor(R.color.LightGray));
// } else {
// labelView.setTextColor(convertView.getResources().getColor(R.color.White));
//
// }
return v;
}
public View getSectionView(View convertView, ViewGroup parentView, NavDrawer_MenuItem navDrawerItem) {
NavMenuSectionHolder holder;
View v;
if (convertView == null) {
v = inflater.inflate(R.layout.navdrawer_section, parentView, false);
holder = new NavMenuSectionHolder();
holder.labelView = (TextView) v.findViewById(R.id.navmenusection_label);
v.setTag(holder);
}
else {
v = convertView;
holder = (NavMenuSectionHolder) v.getTag();
}
holder.labelView.setText(navDrawerItem.label);
return v;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if (this.getItem(position).isSection)
return 1;
else
return 0;
}
private static class NavMenuItemHolder {
public TextView counterView;
public TextView labelView;
public ImageView iconView;
}
private class NavMenuSectionHolder {
private TextView labelView;
}
@Override
public boolean isEnabled(int position) {
return !getItem(position).isSection;
}
}