Search in sources :

Example 1 with PageSetAdapter

use of sj.keyboard.adpater.PageSetAdapter in project XhsEmoticonsKeyboard by w446108264.

the class SimpleCommentActivity method initKeyBoardPopWindow.

private void initKeyBoardPopWindow() {
    mKeyBoardPopWindow = new EmoticonsKeyBoardPopWindow(SimpleCommentActivity.this);
    EmoticonClickListener emoticonClickListener = SimpleCommonUtils.getCommonEmoticonClickListener(etContent);
    PageSetAdapter pageSetAdapter = new PageSetAdapter();
    SimpleCommonUtils.addEmojiPageSetEntity(pageSetAdapter, this, emoticonClickListener);
    SimpleCommonUtils.addXhsPageSetEntity(pageSetAdapter, this, emoticonClickListener);
    mKeyBoardPopWindow.setAdapter(pageSetAdapter);
}
Also used : EmoticonClickListener(sj.keyboard.interfaces.EmoticonClickListener) PageSetAdapter(sj.keyboard.adpater.PageSetAdapter) EmoticonsKeyBoardPopWindow(sj.keyboard.EmoticonsKeyBoardPopWindow)

Example 2 with PageSetAdapter

use of sj.keyboard.adpater.PageSetAdapter in project XhsEmoticonsKeyboard by w446108264.

the class SimpleCommonUtils method getCommonAdapter.

public static PageSetAdapter getCommonAdapter(Context context, EmoticonClickListener emoticonClickListener) {
    if (sCommonPageSetAdapter != null) {
        return sCommonPageSetAdapter;
    }
    PageSetAdapter pageSetAdapter = new PageSetAdapter();
    addEmojiPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    addXhsPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    addWechatPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    addGoodGoodStudyPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    addKaomojiPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    addTestPageSetEntity(pageSetAdapter, context);
    return pageSetAdapter;
}
Also used : PageSetAdapter(sj.keyboard.adpater.PageSetAdapter)

Example 3 with PageSetAdapter

use of sj.keyboard.adpater.PageSetAdapter in project XhsEmoticonsKeyboard by w446108264.

the class QqUtils method getCommonAdapter.

public static PageSetAdapter getCommonAdapter(Context context, EmoticonClickListener emoticonClickListener) {
    if (sCommonPageSetAdapter != null) {
        return sCommonPageSetAdapter;
    }
    PageSetAdapter pageSetAdapter = new PageSetAdapter();
    addQqPageSetEntity(pageSetAdapter, context, emoticonClickListener);
    PageSetEntity pageSetEntity1 = new PageSetEntity.Builder().addPageEntity(new PageEntity(new SimpleQqGridView(context))).setIconUri(R.mipmap.dec).setShowIndicator(false).build();
    pageSetAdapter.add(pageSetEntity1);
    PageSetEntity pageSetEntity2 = new PageSetEntity.Builder().addPageEntity(new PageEntity(new SimpleQqGridView(context))).setIconUri(R.mipmap.mwi).setShowIndicator(false).build();
    pageSetAdapter.add(pageSetEntity2);
    return pageSetAdapter;
}
Also used : PageEntity(sj.keyboard.data.PageEntity) EmoticonPageEntity(sj.keyboard.data.EmoticonPageEntity) SpannableStringBuilder(android.text.SpannableStringBuilder) PageSetAdapter(sj.keyboard.adpater.PageSetAdapter) PageSetEntity(sj.keyboard.data.PageSetEntity) EmoticonPageSetEntity(sj.keyboard.data.EmoticonPageSetEntity)

Example 4 with PageSetAdapter

use of sj.keyboard.adpater.PageSetAdapter in project XhsEmoticonsKeyboard by w446108264.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final XhsEmoticonsKeyBoard ek_bar = (XhsEmoticonsKeyBoard) findViewById(R.id.ek_bar);
    // source data
    ArrayList<EmojiBean> emojiArray = new ArrayList<>();
    Collections.addAll(emojiArray, DefEmoticons.getDefEmojiArray());
    // emoticon click
    final EmoticonClickListener emoticonClickListener = new EmoticonClickListener() {

        @Override
        public void onEmoticonClick(Object o, int actionType, boolean isDelBtn) {
            if (isDelBtn) {
                int action = KeyEvent.ACTION_DOWN;
                int code = KeyEvent.KEYCODE_DEL;
                KeyEvent event = new KeyEvent(action, code);
                ek_bar.getEtChat().onKeyDown(KeyEvent.KEYCODE_DEL, event);
            } else {
                if (o == null) {
                    return;
                }
                String content = null;
                if (o instanceof EmojiBean) {
                    content = ((EmojiBean) o).emoji;
                }
                int index = ek_bar.getEtChat().getSelectionStart();
                Editable editable = ek_bar.getEtChat().getText();
                editable.insert(index, content);
            }
        }
    };
    // emoticon instantiate
    final EmoticonDisplayListener emoticonDisplayListener = new EmoticonDisplayListener() {

        @Override
        public void onBindView(int i, ViewGroup viewGroup, EmoticonsAdapter.ViewHolder viewHolder, Object object, final boolean isDelBtn) {
            final EmojiBean emojiBean = (EmojiBean) object;
            if (emojiBean == null && !isDelBtn) {
                return;
            }
            viewHolder.ly_root.setBackgroundResource(com.keyboard.view.R.drawable.bg_emoticon);
            if (isDelBtn) {
                viewHolder.iv_emoticon.setImageResource(R.mipmap.icon_del);
            } else {
                viewHolder.iv_emoticon.setImageResource(emojiBean.icon);
            }
            viewHolder.rootView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    emoticonClickListener.onEmoticonClick(emojiBean, 0, isDelBtn);
                }
            });
        }
    };
    //  page instantiate
    PageViewInstantiateListener pageViewInstantiateListener = new PageViewInstantiateListener<EmoticonPageEntity>() {

        @Override
        public View instantiateItem(ViewGroup viewGroup, int i, EmoticonPageEntity pageEntity) {
            if (pageEntity.getRootView() == null) {
                EmoticonPageView pageView = new EmoticonPageView(viewGroup.getContext());
                pageView.setNumColumns(pageEntity.getRow());
                pageEntity.setRootView(pageView);
                try {
                    EmoticonsAdapter adapter = new EmoticonsAdapter(viewGroup.getContext(), pageEntity, null);
                    // emoticon instantiate
                    adapter.setOnDisPlayListener(emoticonDisplayListener);
                    pageView.getEmoticonsGridView().setAdapter(adapter);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return pageEntity.getRootView();
        }
    };
    // build
    EmoticonPageSetEntity xhsPageSetEntity = new EmoticonPageSetEntity.Builder().setLine(3).setRow(7).setEmoticonList(emojiArray).setIPageViewInstantiateItem(pageViewInstantiateListener).setShowDelBtn(EmoticonPageEntity.DelBtnStatus.LAST).setIconUri(R.mipmap.ic_launcher).build();
    PageSetAdapter pageSetAdapter = new PageSetAdapter();
    pageSetAdapter.add(xhsPageSetEntity);
    ek_bar.setAdapter(pageSetAdapter);
    class EmojiFilter extends EmoticonFilter {

        private int emojiSize = -1;

        @Override
        public void filter(EditText editText, CharSequence text, int start, int lengthBefore, int lengthAfter) {
            emojiSize = emojiSize == -1 ? EmoticonsKeyboardUtils.getFontHeight(editText) : emojiSize;
            clearSpan(editText.getText(), start, text.toString().length());
            Matcher m = EmojiDisplay.getMatcher(text.toString().substring(start, text.toString().length()));
            if (m != null) {
                while (m.find()) {
                    String emojiHex = Integer.toHexString(Character.codePointAt(m.group(), 0));
                    Drawable drawable = getDrawable(editText.getContext(), EmojiDisplay.HEAD_NAME + emojiHex);
                    if (drawable != null) {
                        int itemHeight;
                        int itemWidth;
                        if (emojiSize == EmojiDisplay.WRAP_DRAWABLE) {
                            itemHeight = drawable.getIntrinsicHeight();
                            itemWidth = drawable.getIntrinsicWidth();
                        } else {
                            itemHeight = emojiSize;
                            itemWidth = emojiSize;
                        }
                        drawable.setBounds(0, 0, itemHeight, itemWidth);
                        EmojiSpan imageSpan = new EmojiSpan(drawable);
                        editText.getText().setSpan(imageSpan, start + m.start(), start + m.end(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
                    }
                }
            }
        }

        private void clearSpan(Spannable spannable, int start, int end) {
            if (start == end) {
                return;
            }
            EmojiSpan[] oldSpans = spannable.getSpans(start, end, EmojiSpan.class);
            for (int i = 0; i < oldSpans.length; i++) {
                spannable.removeSpan(oldSpans[i]);
            }
        }
    }
    // add a filter
    ek_bar.getEtChat().addEmoticonFilter(new EmojiFilter());
}
Also used : PageViewInstantiateListener(sj.keyboard.interfaces.PageViewInstantiateListener) Matcher(java.util.regex.Matcher) ArrayList(java.util.ArrayList) EmoticonPageEntity(sj.keyboard.data.EmoticonPageEntity) KeyEvent(android.view.KeyEvent) EmoticonClickListener(sj.keyboard.interfaces.EmoticonClickListener) EmojiBean(com.sj.emoji.EmojiBean) Editable(android.text.Editable) XhsEmoticonsKeyBoard(sj.keyboard.XhsEmoticonsKeyBoard) EditText(android.widget.EditText) EmoticonsAdapter(sj.keyboard.adpater.EmoticonsAdapter) ViewGroup(android.view.ViewGroup) EmojiSpan(com.sj.emoji.EmojiSpan) Drawable(android.graphics.drawable.Drawable) View(android.view.View) EmoticonPageView(sj.keyboard.widget.EmoticonPageView) EmoticonPageSetEntity(sj.keyboard.data.EmoticonPageSetEntity) EmoticonFilter(sj.keyboard.interfaces.EmoticonFilter) EmoticonPageView(sj.keyboard.widget.EmoticonPageView) PageSetAdapter(sj.keyboard.adpater.PageSetAdapter) EmoticonDisplayListener(sj.keyboard.interfaces.EmoticonDisplayListener) Spannable(android.text.Spannable)

Aggregations

PageSetAdapter (sj.keyboard.adpater.PageSetAdapter)4 EmoticonPageEntity (sj.keyboard.data.EmoticonPageEntity)2 EmoticonPageSetEntity (sj.keyboard.data.EmoticonPageSetEntity)2 EmoticonClickListener (sj.keyboard.interfaces.EmoticonClickListener)2 Drawable (android.graphics.drawable.Drawable)1 Editable (android.text.Editable)1 Spannable (android.text.Spannable)1 SpannableStringBuilder (android.text.SpannableStringBuilder)1 KeyEvent (android.view.KeyEvent)1 View (android.view.View)1 ViewGroup (android.view.ViewGroup)1 EditText (android.widget.EditText)1 EmojiBean (com.sj.emoji.EmojiBean)1 EmojiSpan (com.sj.emoji.EmojiSpan)1 ArrayList (java.util.ArrayList)1 Matcher (java.util.regex.Matcher)1 EmoticonsKeyBoardPopWindow (sj.keyboard.EmoticonsKeyBoardPopWindow)1 XhsEmoticonsKeyBoard (sj.keyboard.XhsEmoticonsKeyBoard)1 EmoticonsAdapter (sj.keyboard.adpater.EmoticonsAdapter)1 PageEntity (sj.keyboard.data.PageEntity)1