@Override public void addRecentEmoji(Context context, Emojicon emojicon) { EmojiconRecentsManager recents = EmojiconRecentsManager.getInstance(context); recents.push(emojicon); // notify dataset changed if (mAdapter != null) mAdapter.notifyDataSetChanged(); }
public EmojiconRecentsGridView( Context context, Emojicon[] emojicons, EmojiconRecents recents, EmojiconsPopup emojiconsPopup) { super(context, emojicons, recents, emojiconsPopup); EmojiconRecentsManager recents1 = EmojiconRecentsManager.getInstance(rootView.getContext()); mAdapter = new EmojiAdapter(rootView.getContext(), recents1); mAdapter.setEmojiClickListener( new OnEmojiconClickedListener() { @Override public void onEmojiconClicked(Emojicon emojicon) { if (mEmojiconPopup.onEmojiconClickedListener != null) { mEmojiconPopup.onEmojiconClickedListener.onEmojiconClicked(emojicon); } } }); GridView gridView = (GridView) rootView.findViewById(R.id.Emoji_GridView); gridView.setAdapter(mAdapter); }
@Override public void onPageSelected(int i) { if (mEmojiTabLastSelectedIndex == i) { return; } switch (i) { case 0: case 1: case 2: case 3: case 4: case 5: if (mEmojiTabLastSelectedIndex >= 0 && mEmojiTabLastSelectedIndex < mEmojiTabs.length) { mEmojiTabs[mEmojiTabLastSelectedIndex].setSelected(false); } mEmojiTabs[i].setSelected(true); mEmojiTabLastSelectedIndex = i; mRecentsManager.setRecentPage(i); break; } }
private View createCustomView() { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.emojicons, null, false); emojisPager = (ViewPager) view.findViewById(R.id.emojis_pager); emojisPager.setOnPageChangeListener(this); EmojiconRecents recents = this; mEmojisAdapter = new EmojisPagerAdapter( Arrays.asList( new EmojiconRecentsGridView(mContext, null, null, this), new EmojiconGridView(mContext, People.DATA, recents, this), new EmojiconGridView(mContext, Nature.DATA, recents, this), new EmojiconGridView(mContext, Objects.DATA, recents, this), new EmojiconGridView(mContext, Places.DATA, recents, this), new EmojiconGridView(mContext, Symbols.DATA, recents, this))); emojisPager.setAdapter(mEmojisAdapter); mEmojiTabs = new View[6]; mEmojiTabs[0] = view.findViewById(R.id.emojis_tab_0_recents); mEmojiTabs[1] = view.findViewById(R.id.emojis_tab_1_people); mEmojiTabs[2] = view.findViewById(R.id.emojis_tab_2_nature); mEmojiTabs[3] = view.findViewById(R.id.emojis_tab_3_objects); mEmojiTabs[4] = view.findViewById(R.id.emojis_tab_4_cars); mEmojiTabs[5] = view.findViewById(R.id.emojis_tab_5_punctuation); for (int i = 0; i < mEmojiTabs.length; i++) { final int position = i; mEmojiTabs[i].setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { emojisPager.setCurrentItem(position); } }); } view.findViewById(R.id.emojis_backspace) .setOnTouchListener( new RepeatListener( 1000, 50, new OnClickListener() { @Override public void onClick(View v) { if (onEmojiconBackspaceClickedListener != null) onEmojiconBackspaceClickedListener.onEmojiconBackspaceClicked(v); } })); // get last selected page mRecentsManager = EmojiconRecentsManager.getInstance(view.getContext()); int page = mRecentsManager.getRecentPage(); // last page was recents, check if there are recents to use // if none was found, go to page 1 if (page == 0 && mRecentsManager.size() == 0) { page = 1; } if (page == 0) { onPageSelected(page); } else { emojisPager.setCurrentItem(page, false); } return view; }
/** Dismiss the popup */ @Override public void dismiss() { super.dismiss(); EmojiconRecentsManager.getInstance(mContext).saveRecents(); }