belongs to Maven artifact com.android.support:support-emoji:28.0.0-alpha1
EmojiCompat
  public
  
  
  
  class
  EmojiCompat
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.support.text.emoji.EmojiCompat | 
Main class to keep Android devices up to date with the newest emojis by adding EmojiSpans
 to a given CharSequence. It is a singleton class that can be configured using a EmojiCompat.Config instance.
 
init(EmojiCompat.Config) function before it can
 process a CharSequence.
 EmojiCompat.init(/* a config instance */);EmojiCompat.Config for more configuration parameters.
 
 During initialization information about emojis is loaded on a background thread. Before the
 EmojiCompat instance is initialized, calls to functions such as process(CharSequence) will throw an exception. You can use the EmojiCompat.InitCallback
 class to be informed about the state of initialization.
 
 After initialization the get() function can be used to get the configured instance and
 the process(CharSequence) function can be used to update a CharSequence with emoji
 EmojiSpans.
 
 CharSequence processedSequence = EmojiCompat.get().process("some string")Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | EmojiCompat.ConfigConfiguration class for EmojiCompat. | 
| 
        
        
        
        
        class | EmojiCompat.InitCallbackListener class for the initialization of the EmojiCompat. | 
| 
        
        
        
        
        interface | EmojiCompat.MetadataRepoLoaderInterface to load emoji metadata. | 
| 
        
        
        
        
        class | EmojiCompat.MetadataRepoLoaderCallbackCallback to inform EmojiCompat about the state of the metadata load. | 
| Constants | |
|---|---|
| String | EDITOR_INFO_METAVERSION_KEYKey in  | 
| String | EDITOR_INFO_REPLACE_ALL_KEYKey in  | 
| int | LOAD_STATE_FAILEDAn unrecoverable error occurred during initialization of EmojiCompat. | 
| int | LOAD_STATE_LOADINGEmojiCompat is initializing. | 
| int | LOAD_STATE_SUCCEEDEDEmojiCompat successfully initialized. | 
| int | REPLACE_STRATEGY_ALLReplace strategy to add  | 
| int | REPLACE_STRATEGY_DEFAULTReplace strategy that uses the value given in  | 
| int | REPLACE_STRATEGY_NON_EXISTENTReplace strategy to add  | 
| Public methods | |
|---|---|
| 
        
        
        static
        
        
        EmojiCompat | 
      get()
      Return singleton EmojiCompat instance. | 
| 
        
        
        
        
        
        String | 
      getAssetSignature()
      Returns signature for the currently loaded emoji assets. | 
| 
        
        
        
        
        
        int | 
      getLoadState()
      Returns loading state of the EmojiCompat instance. | 
| 
        
        
        static
        
        
        boolean | 
      handleDeleteSurroundingText(InputConnection inputConnection, Editable editable, int beforeLength, int afterLength, boolean inCodePoints)
      Handles deleteSurroundingText commands from  | 
| 
        
        
        static
        
        
        boolean | 
      handleOnKeyDown(Editable editable, int keyCode, KeyEvent event)
      Handles onKeyDown commands from a  | 
| 
        
        
        
        
        
        boolean | 
      hasEmojiGlyph(CharSequence sequence)
      Returns  | 
| 
        
        
        
        
        
        boolean | 
      hasEmojiGlyph(CharSequence sequence, int metadataVersion)
      Returns  | 
| 
        
        
        static
        
        
        EmojiCompat | 
      init(EmojiCompat.Config config)
      Initialize the singleton instance with a configuration. | 
| 
        
        
        
        
        
        CharSequence | 
      process(CharSequence charSequence)
      Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found. | 
| 
        
        
        
        
        
        CharSequence | 
      process(CharSequence charSequence, int start, int end, int maxEmojiCount, int replaceStrategy)
      Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found. | 
| 
        
        
        
        
        
        CharSequence | 
      process(CharSequence charSequence, int start, int end, int maxEmojiCount)
      Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found. | 
| 
        
        
        
        
        
        CharSequence | 
      process(CharSequence charSequence, int start, int end)
      Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found. | 
| 
        
        
        
        
        
        void | 
      registerInitCallback(EmojiCompat.InitCallback initCallback)
      Registers an initialization callback. | 
| 
        
        
        
        
        
        void | 
      unregisterInitCallback(EmojiCompat.InitCallback initCallback)
      Unregisters a callback that was added before. | 
| Inherited methods | |
|---|---|
|  From
class 
  
    java.lang.Object
  
 | |
Constants
EDITOR_INFO_METAVERSION_KEY
String EDITOR_INFO_METAVERSION_KEY
Key in extras that represents the emoji metadata version used by the
 widget. The existence of the value means that the widget is using EmojiCompat.
 
int and can be used to query EmojiCompat to
 see whether the widget has the ability to display a certain emoji using
 hasEmojiGlyph(CharSequence, int).
    
      Constant Value: "android.support.text.emoji.emojiCompat_metadataVersion"
EDITOR_INFO_REPLACE_ALL_KEY
String EDITOR_INFO_REPLACE_ALL_KEY
Key in extras that represents setReplaceAll(boolean) configuration parameter. The key is added only if
 EmojiCompat is used by the widget. If exists, the value is a boolean.
Constant Value: "android.support.text.emoji.emojiCompat_replaceAll"
LOAD_STATE_FAILED
int LOAD_STATE_FAILED
An unrecoverable error occurred during initialization of EmojiCompat. Calls to functions
 such as process(CharSequence) will fail.
Constant Value: 2 (0x00000002)
LOAD_STATE_LOADING
int LOAD_STATE_LOADING
EmojiCompat is initializing.
Constant Value: 0 (0x00000000)
LOAD_STATE_SUCCEEDED
int LOAD_STATE_SUCCEEDED
EmojiCompat successfully initialized.
Constant Value: 1 (0x00000001)
REPLACE_STRATEGY_ALL
int REPLACE_STRATEGY_ALL
Replace strategy to add EmojiSpans for all emoji that were found.
Constant Value: 1 (0x00000001)
REPLACE_STRATEGY_DEFAULT
int REPLACE_STRATEGY_DEFAULT
Replace strategy that uses the value given in EmojiCompat.Config.
Constant Value: 0 (0x00000000)
REPLACE_STRATEGY_NON_EXISTENT
int REPLACE_STRATEGY_NON_EXISTENT
Replace strategy to add EmojiSpans only for emoji that do not exist in the system.
Constant Value: 2 (0x00000002)
Public methods
get
EmojiCompat get ()
Return singleton EmojiCompat instance. Should be called after
 init(EmojiCompat.Config) is called to initialize the singleton instance.
| Returns | |
|---|---|
| EmojiCompat | EmojiCompat instance | 
| Throws | |
|---|---|
| IllegalStateException | if called before init(EmojiCompat.Config) | 
getAssetSignature
String getAssetSignature ()
Returns signature for the currently loaded emoji assets. The signature is a SHA that is constructed using emoji assets. Can be used to detect if currently loaded asset is different then previous executions. When used on devices running API 18 or below, returns empty string.
| Returns | |
|---|---|
| String | |
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
getLoadState
int getLoadState ()
Returns loading state of the EmojiCompat instance. When used on devices running API 18 or
 below always returns LOAD_STATE_SUCCEEDED.
| Returns | |
|---|---|
| int | one of LOAD_STATE_LOADING,LOAD_STATE_SUCCEEDED,LOAD_STATE_FAILED | 
handleDeleteSurroundingText
boolean handleDeleteSurroundingText (InputConnection inputConnection, Editable editable, int beforeLength, int afterLength, boolean inCodePoints)
Handles deleteSurroundingText commands from InputConnection and tries to delete an
 EmojiSpan from an Editable. Returns true if an EmojiSpan is
 deleted.
 
false.
    | Parameters | |
|---|---|
| inputConnection | InputConnection: InputConnection instance | 
| editable | Editable: TextView.Editable instance | 
| beforeLength | int: the number of characters before the cursor to be deleted | 
| afterLength | int: the number of characters after the cursor to be deleted | 
| inCodePoints | boolean:trueif length parameters are in codepoints | 
| Returns | |
|---|---|
| boolean | trueif anEmojiSpanis deleted | 
handleOnKeyDown
boolean handleOnKeyDown (Editable editable, int keyCode, KeyEvent event)
Handles onKeyDown commands from a KeyListener and if keyCode is one of
 KEYCODE_DEL or KEYCODE_FORWARD_DEL it tries to delete an
 EmojiSpan from an Editable. Returns true if an EmojiSpan is
 deleted with the characters it covers.
 
false.
    | Parameters | |
|---|---|
| editable | Editable: Editable instance passed toonKeyDown(android.view.View, Editable, int, KeyEvent) | 
| keyCode | int: keyCode passed toonKeyDown(android.view.View, Editable, int, KeyEvent) | 
| event | KeyEvent: KeyEvent passed toonKeyDown(android.view.View, Editable, int, KeyEvent) | 
| Returns | |
|---|---|
| boolean | trueif anEmojiSpanis deleted | 
hasEmojiGlyph
boolean hasEmojiGlyph (CharSequence sequence)
Returns true if EmojiCompat is capable of rendering an emoji. When used on devices
 running API 18 or below, always returns false.
| Parameters | |
|---|---|
| sequence | CharSequence: CharSequence representing the emoji | 
| Returns | |
|---|---|
| boolean | trueif EmojiCompat can render given emoji, cannot benull | 
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
hasEmojiGlyph
boolean hasEmojiGlyph (CharSequence sequence, 
                int metadataVersion)Returns true if EmojiCompat is capable of rendering an emoji at the given metadata
 version. When used on devices running API 18 or below, always returns false.
| Parameters | |
|---|---|
| sequence | CharSequence: CharSequence representing the emoji | 
| metadataVersion | int: the metadata version to check against, should be greater than or
                        equal to0, | 
| Returns | |
|---|---|
| boolean | trueif EmojiCompat can render given emoji, cannot benull | 
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
init
EmojiCompat init (EmojiCompat.Config config)
Initialize the singleton instance with a configuration. When used on devices running API 18
 or below, the singleton instance is immediately moved into LOAD_STATE_SUCCEEDED
 state without loading any metadata.
| Parameters | |
|---|---|
| config | EmojiCompat.Config | 
| Returns | |
|---|---|
| EmojiCompat | |
See also:
process
CharSequence process (CharSequence charSequence)
Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found. When
 used on devices running API 18 or below, returns the given charSequence without
 processing it.
| Parameters | |
|---|---|
| charSequence | CharSequence: CharSequence to add the EmojiSpans | 
| Returns | |
|---|---|
| CharSequence | |
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
See also:
process
CharSequence process (CharSequence charSequence, 
                int start, 
                int end, 
                int maxEmojiCount, 
                int replaceStrategy)Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found.
- If no emojis are found, charSequencegiven as the input is returned without any changes. i.e. charSequence is a String, and no emojis are found, the same String is returned.
- If the given input is not a Spannable (such as String), and at least one emoji is found
 a new Spannableinstance is returned.
- If the given input is a Spannable, the same instance is returned.
charSequence without
 processing it.
    | Parameters | |
|---|---|
| charSequence | CharSequence: CharSequence to add the EmojiSpans, cannot benull | 
| start | int: start index in the charSequence to look for emojis, should be greater than or
              equal to0, also less thancharSequence.length() | 
| end | int: end index in the charSequence to look for emojis, should be greater than or
            equal tostartparameter, also less thancharSequence.length() | 
| maxEmojiCount | int: maximum number of emojis in thecharSequence, should be greater
                      than or equal to0 | 
| replaceStrategy | int: whether to replace all emoji withEmojiSpans, should be one ofREPLACE_STRATEGY_DEFAULT,REPLACE_STRATEGY_NON_EXISTENT,REPLACE_STRATEGY_ALL | 
| Returns | |
|---|---|
| CharSequence | |
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
| IllegalArgumentException | in the following cases: start < 0,end < 0,end < start,start > charSequence.length(),end > charSequence.length()maxEmojiCount < 0 | 
process
CharSequence process (CharSequence charSequence, 
                int start, 
                int end, 
                int maxEmojiCount)Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found.
- If no emojis are found, charSequencegiven as the input is returned without any changes. i.e. charSequence is a String, and no emojis are found, the same String is returned.
- If the given input is not a Spannable (such as String), and at least one emoji is found
 a new Spannableinstance is returned.
- If the given input is a Spannable, the same instance is returned.
charSequence without
 processing it.
    | Parameters | |
|---|---|
| charSequence | CharSequence: CharSequence to add the EmojiSpans, cannot benull | 
| start | int: start index in the charSequence to look for emojis, should be greater than or
              equal to0, also less thancharSequence.length() | 
| end | int: end index in the charSequence to look for emojis, should be greater than or
            equal tostartparameter, also less thancharSequence.length() | 
| maxEmojiCount | int: maximum number of emojis in thecharSequence, should be greater
                      than or equal to0 | 
| Returns | |
|---|---|
| CharSequence | |
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
| IllegalArgumentException | in the following cases: start < 0,end < 0,end < start,start > charSequence.length(),end > charSequence.length()maxEmojiCount < 0 | 
process
CharSequence process (CharSequence charSequence, 
                int start, 
                int end)Checks a given CharSequence for emojis, and adds EmojiSpans if any emojis are found.
- If no emojis are found, charSequencegiven as the input is returned without any changes. i.e. charSequence is a String, and no emojis are found, the same String is returned.
- If the given input is not a Spannable (such as String), and at least one emoji is found
 a new Spannableinstance is returned.
- If the given input is a Spannable, the same instance is returned.
charSequence without
 processing it.
    | Parameters | |
|---|---|
| charSequence | CharSequence: CharSequence to add the EmojiSpans, cannot benull | 
| start | int: start index in the charSequence to look for emojis, should be greater than or
              equal to0, also less thancharSequence.length() | 
| end | int: end index in the charSequence to look for emojis, should be greater than or
            equal tostartparameter, also less thancharSequence.length() | 
| Returns | |
|---|---|
| CharSequence | |
| Throws | |
|---|---|
| IllegalStateException | if not initialized yet | 
| IllegalArgumentException | in the following cases: start < 0,end < 0,end < start,start > charSequence.length(),end > charSequence.length() | 
registerInitCallback
void registerInitCallback (EmojiCompat.InitCallback initCallback)
Registers an initialization callback. If the initialization is already completed by the time the listener is added, the callback functions are called immediately. Callbacks are called on the main looper.
When used on devices running API 18 or below,onInitialized() is called
 without loading any metadata. In such cases onFailed(Throwable) is never
 called.
    | Parameters | |
|---|---|
| initCallback | EmojiCompat.InitCallback: the initialization callback to register, cannot benull | 
See also:
unregisterInitCallback
void unregisterInitCallback (EmojiCompat.InitCallback initCallback)
Unregisters a callback that was added before.
| Parameters | |
|---|---|
| initCallback | EmojiCompat.InitCallback: the callback to be removed, cannot benull | 
- Interfaces
- Classes- EmojiCompat
- EmojiCompat.Config
- EmojiCompat.InitCallback
- EmojiCompat.MetadataRepoLoaderCallback
- EmojiSpan
- FontRequestEmojiCompatConfig
- FontRequestEmojiCompatConfig.ExponentialBackoffRetryPolicy
- FontRequestEmojiCompatConfig.RetryPolicy
- MetadataRepo
- R
- R.attr
- R.bool
- R.color
- R.dimen
- R.drawable
- R.id
- R.integer
- R.layout
- R.string
- R.style
- R.styleable
 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
