package com.mobmonkey.mobmonkeyandroid.arrayadapters; import java.util.LinkedList; import com.mobmonkey.mobmonkeyandroid.R; import com.mobmonkey.mobmonkeyandroid.arrayadaptersitems.MMMediaItem; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; public class MMTopViewedArrayAdapter extends ArrayAdapter<MMMediaItem> { private Context context; private int layoutResourceId; private MMMediaItem[] data; public MMTopViewedArrayAdapter(Context context, int layoutResourceId, MMMediaItem[] data) { super(context, layoutResourceId, data); this.context = context; this.layoutResourceId = layoutResourceId; this.data = data; } @Override public View getView(int position, View convertView, ViewGroup parent) { View topViewedRow = convertView; ViewHolder vholder; if(topViewedRow == null) { LayoutInflater inflater = ((Activity)context).getLayoutInflater(); topViewedRow = inflater.inflate(layoutResourceId, parent, false); vholder = new ViewHolder(); vholder.tvLocName = (TextView) topViewedRow.findViewById(R.id.tvlocname); vholder.ivtnMedia = (ImageView) topViewedRow.findViewById(R.id.ivtnmedia); vholder.tvTime = (TextView) topViewedRow.findViewById(R.id.tvtime); vholder.ibPlay = (ImageButton) topViewedRow.findViewById(R.id.ibplay); vholder.ibShareMedia = (ImageButton) topViewedRow.findViewById(R.id.ibsharemedia); topViewedRow.setTag(vholder); } else { vholder = (ViewHolder) topViewedRow.getTag(); } MMMediaItem mmMediaItem = data[position]; vholder.tvLocName.setText(mmMediaItem.getLocationName()); vholder.ivtnMedia.setImageBitmap(mmMediaItem.getImageMedia()); vholder.tvTime.setText(mmMediaItem.getExpiryDate()); vholder.ibShareMedia.setOnClickListener(mmMediaItem.getShareMediaOnClickListener()); if(mmMediaItem.isVideo()) { vholder.ibPlay.setVisibility(View.VISIBLE); vholder.ibPlay.setOnClickListener(mmMediaItem.getPlayOnClickListener()); } else if(mmMediaItem.isImage()) { vholder.ibPlay.setVisibility(View.INVISIBLE); vholder.ivtnMedia.setOnClickListener(mmMediaItem.getImageOnClickListener()); } return topViewedRow; } private class ViewHolder { TextView tvLocName; ImageView ivtnMedia; TextView tvTime; ImageButton ibPlay; ImageButton ibShareMedia; } }