EmojiEditTextHelper
class EmojiEditTextHelper
Utility class to enhance custom EditText widgets with EmojiCompat.
public class MyEmojiEditText extends EditText { public MyEmojiEditText(Context context) { super(context); init(); } // ... private void init() { super.setKeyListener(getEmojiEditTextHelper().getKeyListener(getKeyListener())); } @Override public void setKeyListener(android.text.method.KeyListener keyListener) { super.setKeyListener(getEmojiEditTextHelper().getKeyListener(keyListener)); } @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { InputConnection inputConnection = super.onCreateInputConnection(outAttrs); return getEmojiEditTextHelper().onCreateInputConnection(inputConnection, outAttrs); } private EmojiEditTextHelper getEmojiEditTextHelper() { if (mEmojiEditTextHelper == null) { mEmojiEditTextHelper = new EmojiEditTextHelper(this); } return mEmojiEditTextHelper; } }
Summary
Public constructors |
|---|
EmojiEditTextHelper(editText: EditText)Default constructor. |
Public functions |
|
|---|---|
KeyListener |
getKeyListener(keyListener: KeyListener)Attaches EmojiCompat KeyListener to the widget. |
Int |
Returns the maximum number of EmojiSpans to be added to a CharSequence. |
InputConnection? |
onCreateInputConnection(Updates the InputConnection with emoji support. |
Unit |
setMaxEmojiCount(maxEmojiCount: @IntRange(from = 0) Int)Set the maximum number of EmojiSpans to be added to a CharSequence. |
Public constructors
EmojiEditTextHelper
EmojiEditTextHelper(editText: EditText)
Default constructor.
| Parameters | |
|---|---|
editText: EditText |
EditText instance |
Public functions
getKeyListener
fun getKeyListener(keyListener: KeyListener): KeyListener
Attaches EmojiCompat KeyListener to the widget. Should be called from setKeyListener. Existing keyListener is wrapped into EmojiCompat KeyListener. When used on devices running API 18 or below, this method returns keyListener that is given as a parameter.
| Parameters | |
|---|---|
keyListener: KeyListener |
KeyListener passed into |
| Returns | |
|---|---|
KeyListener |
a new KeyListener instance that wraps |
getMaxEmojiCount
fun getMaxEmojiCount(): Int
Returns the maximum number of EmojiSpans to be added to a CharSequence.
| See also | |
|---|---|
setMaxEmojiCount |
|
process |
onCreateInputConnection
fun onCreateInputConnection(
inputConnection: InputConnection?,
outAttrs: EditorInfo
): InputConnection?
Updates the InputConnection with emoji support. Should be called from onCreateInputConnection. When used on devices running API 18 or below, this method returns inputConnection that is given as a parameter. If inputConnection is null, returns null.
| Parameters | |
|---|---|
inputConnection: InputConnection? |
InputConnection instance created by TextView |
outAttrs: EditorInfo |
EditorInfo passed into |
| Returns | |
|---|---|
InputConnection? |
a new InputConnection instance that wraps |
setMaxEmojiCount
fun setMaxEmojiCount(maxEmojiCount: @IntRange(from = 0) Int): Unit
Set the maximum number of EmojiSpans to be added to a CharSequence. The number of spans in a CharSequence affects the performance of the EditText insert/delete operations. Insert/delete operations slow down as the number of spans increases.
| Parameters | |
|---|---|
maxEmojiCount: @IntRange(from = 0) Int |
maximum number of EmojiSpans to be added to a single CharSequence, should be equal or greater than 0 |
| See also | |
|---|---|
process |