package com.mobmonkey.mobmonkeyandroid.arrayadapters; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.Date; import java.util.concurrent.TimeUnit; import android.app.Activity; import android.content.ContentResolver; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.MediaMetadataRetriever; import android.media.ThumbnailUtils; import android.provider.MediaStore; import android.provider.MediaStore.Video; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.mobmonkey.mobmonkeyandroid.R; import com.mobmonkey.mobmonkeyandroid.arrayadaptersitems.MMMediaItem; import com.mobmonkey.mobmonkeyandroid.listeners.MMAcceptMediaOnClickListener; import com.mobmonkey.mobmonkeyandroid.listeners.MMRejectMediaOnClickListener; import com.mobmonkey.mobmonkeysdk.utils.MMSDKConstants; public class MMAnsweredRequestsArrayAdapter extends ArrayAdapter<MMMediaItem>{ private static final String TAG = "MMAnsweredRequestArrayAdapter"; private Context context; private int layoutResourceId; private MMMediaItem data[] = null; public MMAnsweredRequestsArrayAdapter(Context context, int layoutResourceId, MMMediaItem[] data) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; } @Override public View getView(int position, View convertView, ViewGroup parent) { View answeredRequestsListRow = convertView; ViewHolder vHolder = null; if(answeredRequestsListRow == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); answeredRequestsListRow = inflater.inflate(layoutResourceId, parent, false); vHolder = new ViewHolder(); vHolder.tvLocName = (TextView) answeredRequestsListRow.findViewById(R.id.tvlocname); vHolder.ivtnMedia = (ImageView) answeredRequestsListRow.findViewById(R.id.ivtnmedia); vHolder.ibPlay = (ImageButton) answeredRequestsListRow.findViewById(R.id.ibplay); vHolder.tvTime = (TextView) answeredRequestsListRow.findViewById(R.id.tvtime); vHolder.ibShareMedia = (ImageButton) answeredRequestsListRow.findViewById(R.id.ibsharemedia); vHolder.ibAccept = (ImageButton) answeredRequestsListRow.findViewById(R.id.ibaccept); vHolder.ibReject = (ImageButton) answeredRequestsListRow.findViewById(R.id.ibreject); answeredRequestsListRow.setTag(vHolder); } else { vHolder = (ViewHolder) answeredRequestsListRow.getTag(); } MMMediaItem mmMediaItem = data[position]; vHolder.tvLocName.setText(mmMediaItem.getLocationName()); vHolder.tvTime.setText(mmMediaItem.getExpiryDate()); // if(mmMediaItem.getImageMedia() != null) { vHolder.ivtnMedia.setImageBitmap(mmMediaItem.getImageMedia()); if(mmMediaItem.isImage()) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); vHolder.ivtnMedia.setOnClickListener(mmMediaItem.getImageOnClickListener()); vHolder.ibPlay.setVisibility(View.INVISIBLE); } else if(mmMediaItem.isVideo()) { vHolder.ibPlay.setVisibility(View.VISIBLE); vHolder.ibPlay.setOnClickListener(mmMediaItem.getPlayOnClickListener()); } // } else { // TODO: handle null media // } if(mmMediaItem.isAccepted()) { vHolder.ibAccept.setVisibility(View.GONE); vHolder.ibReject.setVisibility(View.GONE); } else { vHolder.ibAccept.setVisibility(View.VISIBLE); vHolder.ibReject.setVisibility(View.VISIBLE); vHolder.ibAccept.setOnClickListener(mmMediaItem.getAcceptMediaOnClickListener()); vHolder.ibReject.setOnClickListener(mmMediaItem.getRejectMediaOnClickListener()); } vHolder.tvLocName.setOnClickListener(mmMediaItem.getLocationNameOnClickListener()); vHolder.ibShareMedia.setOnClickListener(mmMediaItem.getShareMediaOnClickListener()); return answeredRequestsListRow; } private class ViewHolder { ImageView ivtnMedia; ImageButton ibAccept, ibReject, ibPlay, ibShareMedia; TextView tvLocName, tvTime; } }