package info.guardianproject.securereaderinterface.adapters; import java.util.ArrayList; import info.guardianproject.securereaderinterface.ui.OnMediaItemClickedListener; import info.guardianproject.securereaderinterface.views.MediaContentPreviewView; import android.content.Context; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; public class StoryItemMediaContentPagerAdapter extends PagerAdapter { private final Context mContext; private ArrayList<MediaContentPreviewView> mMediaViewCollection; public StoryItemMediaContentPagerAdapter(Context context, ArrayList<MediaContentPreviewView> mediaViewCollection, boolean allowFullScreenViewing) { super(); mContext = context; mMediaViewCollection = mediaViewCollection; // Hookup events? for (int i = 0; i < mMediaViewCollection.size(); i++) { View mediaView = (View) mMediaViewCollection.get(i); if (allowFullScreenViewing) { mediaView.setOnClickListener(new OnMediaItemClickedListener(((MediaContentPreviewView)mediaView).getMediaContent())); } else { mediaView.setOnClickListener(null); } } } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (View) arg1; } @Override public Object instantiateItem(ViewGroup container, int position) { View mediaView = (View) mMediaViewCollection.get(position); if (mediaView != null) { if (mediaView.getParent() != null) ((ViewGroup) mediaView.getParent()).removeView(mediaView); container.addView(mediaView, 0); } return mediaView; } @Override public int getItemPosition(Object object) { return POSITION_NONE; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getCount() { return mMediaViewCollection.size(); } public View getView(int position) { return (View) mMediaViewCollection.get(position); } public long getItemId(int position) { View view = getView(position); if (view != null) return view.hashCode(); return 0; } @Override public CharSequence getPageTitle(int position) { return "Page " + position; } }