EmojiEditTextHelper

class EmojiEditTextHelper
kotlin.Any
   ↳ androidx.emoji.widget.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
<init>(editText: EditText)

Default constructor.

Public methods
Int

Returns the maximum number of EmojiSpans to be added to a CharSequence.

KeyListener

Attaches EmojiCompat KeyListener to the widget.

Unit
setMaxEmojiCount(maxEmojiCount: Int)

Set the maximum number of EmojiSpans to be added to a CharSequence.

InputConnection?
onCreateInputConnection(inputConnection: InputConnection?, outAttrs: EditorInfo)

Updates the InputConnection with emoji support.

Public constructors

<init>

EmojiEditTextHelper(editText: EditText)

Default constructor.

Parameters
editText EditText: EditText instance

Public methods

getMaxEmojiCount

fun getMaxEmojiCount(): Int

Returns the maximum number of EmojiSpans to be added to a CharSequence.

getKeyListener

fun getKeyListener(keyListener: KeyListener): KeyListener

Attaches EmojiCompat KeyListener to the widget. Should be called from . 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 TextView#setKeyListener(KeyListener)
Return
KeyListener: a new KeyListener instance that wraps keyListener.

setMaxEmojiCount

fun setMaxEmojiCount(maxEmojiCount: 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 Int: maximum number of EmojiSpans to be added to a single CharSequence, should be equal or greater than 0

onCreateInputConnection

fun onCreateInputConnection(inputConnection: InputConnection?, outAttrs: EditorInfo): InputConnection?

Updates the InputConnection with emoji support. Should be called from . 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 InputConnection?: EditorInfo passed into TextView#onCreateInputConnection(EditorInfo)
Return
InputConnection?: a new InputConnection instance that wraps inputConnection