private void initView() { View view = LayoutInflater.from(context).inflate(R.layout.reply_widget, null); bottomContainer = (LinearLayout) view.findViewById(R.id.reply_widget_bottom_container); actionContainer = (LinearLayout) view.findViewById(R.id.reply_widget_action_container); addButton = (ImageView) view.findViewById(R.id.reply_widget_add_button); addEmojiButton = (ImageView) view.findViewById(R.id.reply_widget_emoji_button); addImageButton = (ImageView) view.findViewById(R.id.reply_add_image_button); recyclerView = (RecyclerView) view.findViewById(R.id.reply_widget_image_listview); submitButton = (ImageView) view.findViewById(R.id.reply_widget_submit_button); emojiconEditText = (EmojiconEditText) view.findViewById(R.id.reply_widget_edittext); hasDotImageView = (ImageView) view.findViewById(R.id.reply_widget_has_dot); final View rootView = view.findViewById(R.id.reply_widget_root_view); // Give the topmost view of your activity layout hierarchy. This will be used to measure soft // keyboard height final EmojiconsPopup popup = new EmojiconsPopup(rootView, context); // Will automatically set size according to the soft keyboard size popup.setSizeForSoftKeyboard(); // If the emoji popup is dismissed, change addEmojiButton to smiley icon popup.setOnDismissListener( new PopupWindow.OnDismissListener() { @Override public void onDismiss() { changeEmojiKeyboardIcon(addEmojiButton, R.mipmap.expression); } }); // If the text keyboard closes, also dismiss the emoji popup popup.setOnSoftKeyboardOpenCloseListener( new EmojiconsPopup.OnSoftKeyboardOpenCloseListener() { @Override public void onKeyboardOpen(int keyBoardHeight) {} @Override public void onKeyboardClose() { if (popup.isShowing()) popup.dismiss(); } }); // On emoji clicked, add it to edittext popup.setOnEmojiconClickedListener( new EmojiconGridView.OnEmojiconClickedListener() { @Override public void onEmojiconClicked(Emojicon emojicon) { if (emojiconEditText == null || emojicon == null) { return; } int start = emojiconEditText.getSelectionStart(); int end = emojiconEditText.getSelectionEnd(); if (start < 0) { emojiconEditText.append(emojicon.getEmoji()); } else { emojiconEditText .getText() .replace( Math.min(start, end), Math.max(start, end), emojicon.getEmoji(), 0, emojicon.getEmoji().length()); } } }); // On backspace clicked, emulate the KEYCODE_DEL key event popup.setOnEmojiconBackspaceClickedListener( new EmojiconsPopup.OnEmojiconBackspaceClickedListener() { @Override public void onEmojiconBackspaceClicked(View v) { KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL); emojiconEditText.dispatchKeyEvent(event); } }); addButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { hideSoftKeyboard(emojiconEditText); switchActionContainer(); } }); // To toggle between text keyboard and emoji keyboard keyboard(Popup) addEmojiButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { bottomContainer.setVisibility(View.GONE); // If popup is not showing => emoji keyboard is not visible, we need to show it if (!popup.isShowing()) { // If keyboard is visible, simply show the emoji popup if (popup.isKeyBoardOpen()) { popup.showAtBottom(); changeEmojiKeyboardIcon(addEmojiButton, R.mipmap.ic_action_keyboard); } // else, open the text keyboard first and immediately after that show the emoji popup else { emojiconEditText.setFocusableInTouchMode(true); emojiconEditText.requestFocus(); popup.showAtBottomPending(); final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput( emojiconEditText, InputMethodManager.SHOW_IMPLICIT); changeEmojiKeyboardIcon(addEmojiButton, R.mipmap.ic_action_keyboard); } } // If popup is showing, simply dismiss it to show the undelying text keyboard else { popup.dismiss(); } } }); // On submit, add the edittext text to listview and clear the edittext submitButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { String newText = emojiconEditText.getText().toString(); if (replyWidgetListener != null) { replyWidgetListener.onCommit(newText); } } }); emojiconEditText.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { boolean isKeyBoardShow = showSoftKeyboard(emojiconEditText); if (isKeyBoardShow) { hideActionContainer(); } return false; } }); addImageButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { initImageList(); gotoSelectImage(); } }); contentContainer.addView(view); }
public void clean() { if (emojiconEditText != null) { emojiconEditText.setText(""); } }
public void resetHint() { emojiconEditText.setText(""); emojiconEditText.setHint(R.string.we_speek); }
public void setHint(String hint) { emojiconEditText.setText(""); emojiconEditText.setHint(hint); }
public void setText(String text) { emojiconEditText.setText(text); emojiconEditText.setSelection(text.length()); }
public String getText() { return emojiconEditText.getText().toString(); }