Back to project page EnklawaPlayer.
The source code is released under:
GNU General Public License
If you think the Android project EnklawaPlayer listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package macbury.pod.navigation_drawer; /*from w w w .j a v a 2s . c o m*/ import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.koushikdutta.ion.Ion; import java.util.ArrayList; import be.webelite.ion.IconView; import macbury.pod.R; import macbury.pod.db.models.Program; import macbury.pod.navigation_drawer.items.FavoriteProgramNavItem; import macbury.pod.navigation_drawer.items.NavItemFragment; /** * Created by macbury on 11.09.14. */ public class NavAdapter extends BaseAdapter{ private final ArrayList<NavBaseItem> items; private final ArrayList<Class<? extends NavBaseItem>> viewTypes; private final Context context; private int selected; public NavAdapter(Context context) { this.context = context; this.items = new ArrayList<NavBaseItem>(); this.viewTypes = new ArrayList<Class<? extends NavBaseItem>>(); } public void add(NavBaseItem item) { items.add(item); if (!viewTypes.contains(item.getClass())) { viewTypes.add(item.getClass()); } } public void clear() { viewTypes.clear(); items.clear(); } @Override public int getCount() { return items.size(); } @Override public NavBaseItem getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { NavBaseItem item = getItem(position); if (isNavItemFragment(position)) { return getNavItemView((NavItemFragment)item, convertView, parent, position); } else if(isDivider(position)) { return getDividerItemView((NavDivider)item, convertView, parent); } else if(isNavFavoriteProgramItem(position)) { return getFavoriteProgramItemView((FavoriteProgramNavItem) item, convertView, parent, position); } return null; } public boolean isNavItemFragment(int position) { return NavItemFragment.class.isInstance(getItem(position)); } public boolean isNavFavoriteProgramItem(int position) { return FavoriteProgramNavItem.class.isInstance(getItem(position)); } private View getFavoriteProgramItemView(FavoriteProgramNavItem item, View convertView, ViewGroup parent, int position) { FavoriteProgramItemItemHolder holder = null; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.nav_item_favorite_program, parent, false); holder = new FavoriteProgramItemItemHolder(); holder.previewImage = (ImageView)convertView.findViewById(R.id.program_preview); holder.titleView = (TextView)convertView.findViewById(R.id.program_title); convertView.setTag(holder); } else { holder = (FavoriteProgramItemItemHolder) convertView.getTag(); } Program program = item.getProgram(); holder.titleView.setText(program.name); Ion.with(context).load(program.image).withBitmap().intoImageView(holder.previewImage); if (position == selected) { holder.titleView.setTypeface(null, Typeface.BOLD); } else { holder.titleView.setTypeface(null, Typeface.NORMAL); } return convertView; } private View getDividerItemView(NavDivider item, View convertView, ViewGroup parent) { DividerItemHolder holder = null; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.nav_divider_item, parent, false); holder = new DividerItemHolder(); holder.titleView = (TextView)convertView.findViewById(R.id.nav_item_title_view); convertView.setTag(holder); } else { holder = (DividerItemHolder) convertView.getTag(); } holder.titleView.setText(item.getTitle()); return convertView; } private View getNavItemView(NavItemFragment item, View convertView, ViewGroup parent, int position) { SimpleNavItemHolder holder = null; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.nav_item_simple, parent, false); holder = new SimpleNavItemHolder(); holder.iconView = (IconView) convertView.findViewById(R.id.nav_item_icon_view); holder.titleView = (TextView) convertView.findViewById(R.id.nav_item_title_view); holder.countView = (TextView) convertView.findViewById(R.id.nav_item_count_view); convertView.setTag(holder); } else { holder = (SimpleNavItemHolder) convertView.getTag(); } holder.iconView.setTextColor(item.getColorResource()); if (position == selected) { holder.titleView.setTypeface(null, Typeface.BOLD); } else { holder.titleView.setTypeface(null, Typeface.NORMAL); } int count = item.getCount(); if (count <= 0) { holder.countView.setVisibility(View.INVISIBLE); } else { holder.countView.setText(String.valueOf(count)); holder.countView.setVisibility(View.VISIBLE); } holder.titleView.setText(item.getTitle()); holder.iconView.setIcon(item.getIcon()); return convertView; } @Override public int getViewTypeCount() { return viewTypes.size(); } @Override public int getItemViewType(int position) { return getItem(position).getType(); } public boolean isDivider(int position) { return NavDivider.class.isInstance(getItem(position)); } public void setSelected(int selected) { this.selected = selected; this.notifyDataSetChanged(); } public int getSelected() { return selected; } public class SimpleNavItemHolder { public IconView iconView; public TextView titleView; public TextView countView; } public class FavoriteProgramItemItemHolder { public TextView titleView; public ImageView previewImage; } public class DividerItemHolder { public TextView titleView; } }