package com.mobmonkey.mobmonkeyandroid.arrayadapters; import com.mobmonkey.mobmonkeyandroid.R; import com.mobmonkey.mobmonkeyandroid.arrayadaptersitems.MMSearchCategoriesItem; import com.mobmonkey.mobmonkeysdk.utils.MMLocationListener; import com.mobmonkey.mobmonkeysdk.utils.MMLocationManager; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; /** * @author Dezapp, LLC * */ public class MMSearchCategoriesArrayAdapter extends ArrayAdapter<MMSearchCategoriesItem> { private Context context; private int layoutResourceId; private MMSearchCategoriesItem[] mmSearchCategoryItems; /** * * @param context * @param layoutResourceId * @param mmSearchCategoryItems */ public MMSearchCategoriesArrayAdapter(Context context, int layoutResourceId, MMSearchCategoriesItem[] mmSearchCategoryItems) { super(context, layoutResourceId, mmSearchCategoryItems); this.context = context; this.layoutResourceId = layoutResourceId; this.mmSearchCategoryItems = mmSearchCategoryItems; } /* * (non-Javadoc) * @see android.widget.ArrayAdapter#getView(int, android.view.View, android.view.ViewGroup) */ @Override public View getView(int position, View convertView, ViewGroup parent) { View searchCategoryRow = convertView; ViewHolder vHolder = null; if(searchCategoryRow == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); searchCategoryRow = inflater.inflate(layoutResourceId, parent, false); vHolder = new ViewHolder(); vHolder.ivCatIcon = (ImageView) searchCategoryRow.findViewById(R.id.ivicon); vHolder.tvCatName = (TextView) searchCategoryRow.findViewById(R.id.tvlabel); vHolder.ivCatIndicatorIcon = (ImageView) searchCategoryRow.findViewById(R.id.ivindicatoricon); searchCategoryRow.setTag(vHolder); } else { vHolder = (ViewHolder) searchCategoryRow.getTag(); } if(mmSearchCategoryItems[position].getCatIconId() == 0) { vHolder.ivCatIcon.setVisibility(View.GONE); } else { vHolder.ivCatIcon.setImageResource(mmSearchCategoryItems[position].getCatIconId()); } vHolder.tvCatName.setText(mmSearchCategoryItems[position].getCatName()); vHolder.ivCatIndicatorIcon.setImageResource(mmSearchCategoryItems[position].getCatIndicatorIconId()); if(!MMLocationManager.isGPSEnabled() || MMLocationManager.getGPSLocation() == null) { vHolder.tvCatName.setTextColor(Color.GRAY); } searchCategoryRow.setBackgroundColor(Color.TRANSPARENT); return searchCategoryRow; } /** * * @author Dezapp, LLC * */ private class ViewHolder { ImageView ivCatIcon; TextView tvCatName; ImageView ivCatIndicatorIcon; } }