package org.awesomeapp.messenger.ui.stickers; import android.content.Context; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import java.util.List; import im.zom.messenger.R; public class StickerPagerAdapter extends PagerAdapter { StickerGridAdapter[] gias; List<StickerGroup> mEmojiGroups; Context mContext; StickerSelectListener mListener; public StickerPagerAdapter(Context context, List<StickerGroup> emojiGroups, StickerSelectListener listener) { super(); mContext = context; mEmojiGroups = emojiGroups; gias = new StickerGridAdapter[mEmojiGroups.size()]; mListener = listener; } @Override public Object instantiateItem(View collection, int position) { gias[position] = new StickerGridAdapter(mContext,mEmojiGroups.get(position).emojis); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); GridView imagegrid = (GridView) inflater.inflate(R.layout.stickergrid, null); imagegrid.setAdapter(gias[position]); imagegrid.setOnItemClickListener(new OnItemClickListener () { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { GridView gv = ((GridView)arg0); Sticker t = (Sticker)((StickerGridAdapter)gv.getAdapter()).getItem(arg2); if (mListener != null) mListener.onStickerSelected(t); } }); ((ViewPager)collection).addView(imagegrid); return imagegrid; } @Override public int getCount() { return mEmojiGroups.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup collection, int position, Object arg2) { ((ViewPager) collection).removeView((ViewGroup) arg2);} @Override public Parcelable saveState() { return null;} @Override public void startUpdate(ViewGroup collection) {} @Override public void finishUpdate(ViewGroup collection) {} @Override public CharSequence getPageTitle(int position) { return mEmojiGroups.get(position).category; } }