diff --git a/src/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java b/src/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java index cf44a3000b..5373b9dc9c 100644 --- a/src/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java +++ b/src/org/thoughtcrime/securesms/components/emoji/EmojiDrawer.java @@ -37,6 +37,7 @@ public class EmojiDrawer extends Fragment { private EmojiEditText composeText; private KeyboardAwareLinearLayout container; private ViewPager pager; + private List models; private PagerSlidingTabStrip strip; private RecentEmojiPageModel recentModel; @@ -61,6 +62,7 @@ public class EmojiDrawer extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.emoji_drawer, container, false); initializeResources(v); + initializePageModels(getArguments().getInt("categories"), getArguments().getInt("icons")); initializeEmojiGrid(); return v; } @@ -98,30 +100,31 @@ public class EmojiDrawer extends Fragment { } private void initializeEmojiGrid() { - pager.setAdapter(new EmojiPagerAdapter(getActivity(), getFragmentManager(), - getPageModels(getArguments().getInt("categories"), - getArguments().getInt("icons")), + models, new EmojiSelectionListener() { @Override public void onEmojiSelected(int emojiCode) { recentModel.onCodePointSelected(emojiCode); composeText.insertEmoji(emojiCode); } })); + + if (recentModel.getCodePoints().length == 0) { + pager.setCurrentItem(1); + } strip.setViewPager(pager); } - private List getPageModels(@ArrayRes int pagesRes, @ArrayRes int iconsRes) { + private void initializePageModels(@ArrayRes int pagesRes, @ArrayRes int iconsRes) { final int[] icons = ResUtil.getResourceIds(getActivity(), iconsRes); final int[] pages = ResUtil.getResourceIds(getActivity(), pagesRes); - final List models = new LinkedList<>(); - recentModel = new RecentEmojiPageModel(getActivity()); - models.add(recentModel); + this.models = new LinkedList<>(); + this.recentModel = new RecentEmojiPageModel(getActivity()); + this.models.add(recentModel); for (int i = 0; i < icons.length; i++) { - models.add(new StaticEmojiPageModel(icons[i], getResources().getIntArray(pages[i]))); + this.models.add(new StaticEmojiPageModel(icons[i], getResources().getIntArray(pages[i]))); } - return models; } public static class EmojiPagerAdapter extends FragmentStatePagerAdapter