EmojiCompat.Config

abstract class EmojiCompat.Config

Known direct subclasses
BundledEmojiCompatConfig

EmojiCompat.Config implementation that loads the metadata using AssetManager and bundled resources.

FontRequestEmojiCompatConfig

EmojiCompat.Config implementation that asynchronously fetches the required font and the metadata using a FontRequest.


Configuration class for EmojiCompat. Changes to the values will be ignored after init is called.

See also
init

Summary

Protected constructors

Default constructor.

Public functions

EmojiCompat.Config

Registers an initialization callback.

EmojiCompat.Config
registerInitCallback(
    executor: Executor,
    initCallback: EmojiCompat.InitCallback
)

Registers an initialization callback.

EmojiCompat.Config

Sets the color used as emoji span indicator.

EmojiCompat.Config
setEmojiSpanIndicatorEnabled(emojiSpanIndicatorEnabled: Boolean)

Determines whether a background will be drawn for the emojis that are found and replaced by EmojiCompat.

EmojiCompat.Config

The interface that is used by EmojiCompat in order to check if a given emoji can be rendered by the system.

EmojiCompat.Config

Determines the strategy to start loading the metadata.

EmojiCompat.Config
setReplaceAll(replaceAll: Boolean)

Determines whether EmojiCompat should replace all the emojis it finds with the EmojiSpans.

EmojiCompat.Config

Set the span factory used to actually draw emoji replacements.

EmojiCompat.Config
setUseEmojiAsDefaultStyle(useEmojiAsDefaultStyle: Boolean)

Determines whether EmojiCompat should use the emoji presentation style for emojis that have text style as default.

EmojiCompat.Config
setUseEmojiAsDefaultStyle(
    useEmojiAsDefaultStyle: Boolean,
    emojiAsDefaultStyleExceptions: (Mutable)List<Int!>?
)
EmojiCompat.Config

Unregisters a callback that was added before.

Protected constructors

Config

Added in 1.0.0
protected Config(metadataLoader: EmojiCompat.MetadataRepoLoader)

Default constructor.

Parameters
metadataLoader: EmojiCompat.MetadataRepoLoader

MetadataRepoLoader instance, cannot be null

Public functions

registerInitCallback

Added in 1.0.0
fun registerInitCallback(initCallback: EmojiCompat.InitCallback): EmojiCompat.Config

Registers an initialization callback.

Parameters
initCallback: EmojiCompat.InitCallback

the initialization callback to register, cannot be null

Returns
EmojiCompat.Config

EmojiCompat.Config instance

registerInitCallback

Added in 1.5.0-alpha01
fun registerInitCallback(
    executor: Executor,
    initCallback: EmojiCompat.InitCallback
): EmojiCompat.Config

Registers an initialization callback.

Parameters
executor: Executor

executor to dispatch callback on

initCallback: EmojiCompat.InitCallback

the initialization callback to register, cannot be null

Returns
EmojiCompat.Config

EmojiCompat.Config instance

setEmojiSpanIndicatorColor

Added in 1.0.0
fun setEmojiSpanIndicatorColor(color: @ColorInt Int): EmojiCompat.Config

Sets the color used as emoji span indicator. The default value is Color.GREEN.

setEmojiSpanIndicatorEnabled

Added in 1.0.0
fun setEmojiSpanIndicatorEnabled(emojiSpanIndicatorEnabled: Boolean): EmojiCompat.Config

Determines whether a background will be drawn for the emojis that are found and replaced by EmojiCompat. Should be used only for debugging purposes. The indicator color can be set using setEmojiSpanIndicatorColor.

Parameters
emojiSpanIndicatorEnabled: Boolean

when true a background is drawn for each emoji that is replaced

setGlyphChecker

Added in 1.0.0
fun setGlyphChecker(glyphChecker: EmojiCompat.GlyphChecker): EmojiCompat.Config

The interface that is used by EmojiCompat in order to check if a given emoji can be rendered by the system.

Parameters
glyphChecker: EmojiCompat.GlyphChecker

GlyphChecker instance to be used.

setMetadataLoadStrategy

Added in 1.0.0
fun setMetadataLoadStrategy(strategy: Int): EmojiCompat.Config

Determines the strategy to start loading the metadata. By default EmojiCompat will start loading the metadata during init. When set to LOAD_STRATEGY_MANUAL, you should call load to initiate metadata loading.

Default implementations of EmojiCompat.MetadataRepoLoader start a thread during their load functions. Just instantiating and starting a thread might take time especially in older devices. Since init has to be called before any EmojiCompat widgets are inflated, this results in time spent either on your Application.onCreate or Activity .onCreate. If you'd like to gain more control on when to start loading the metadata and be able to call init with absolute minimum time cost you can use LOAD_STRATEGY_MANUAL. When set to LOAD_STRATEGY_MANUAL, EmojiCompat will wait for load to be called by the developer in order to start loading metadata, therefore you should call load to initiate metadata loading. load can be called from any thread.
EmojiCompat.Config config = new FontRequestEmojiCompatConfig(context, fontRequest)
        .setMetadataLoadStrategy(EmojiCompat.LOAD_STRATEGY_MANUAL);

// EmojiCompat will not start loading metadata and MetadataRepoLoader#load(...)
// will not be called
EmojiCompat.init(config);

// At any time (i.e. idle time or executorService is ready)
// call EmojiCompat#load() to start loading metadata.
executorService.execute(() -> EmojiCompat.get().load());
Parameters
strategy: Int

one of LOAD_STRATEGY_DEFAULT, LOAD_STRATEGY_MANUAL

setReplaceAll

Added in 1.0.0
fun setReplaceAll(replaceAll: Boolean): EmojiCompat.Config

Determines whether EmojiCompat should replace all the emojis it finds with the EmojiSpans. By default EmojiCompat tries its best to understand if the system already can render an emoji and do not replace those emojis.

Parameters
replaceAll: Boolean

replace all emojis found with EmojiSpans

Returns
EmojiCompat.Config

EmojiCompat.Config instance

setSpanFactory

Added in 1.3.0
fun setSpanFactory(factory: EmojiCompat.SpanFactory): EmojiCompat.Config

Set the span factory used to actually draw emoji replacements.

Parameters
factory: EmojiCompat.SpanFactory

custum span factory that can draw the emoji replacements

Returns
EmojiCompat.Config

this

setUseEmojiAsDefaultStyle

Added in 1.0.0
fun setUseEmojiAsDefaultStyle(useEmojiAsDefaultStyle: Boolean): EmojiCompat.Config

Determines whether EmojiCompat should use the emoji presentation style for emojis that have text style as default. By default, the text style would be used, unless these are followed by the U+FE0F variation selector. Details about emoji presentation and text presentation styles can be found here: http://unicode.org/reports/tr51/#Presentation_Style If useEmojiAsDefaultStyle is true, the emoji presentation style will be used for all emojis, including potentially unexpected ones (such as digits or other keycap emojis). If this is not the expected behaviour, method setUseEmojiAsDefaultStyle can be used to specify the exception emojis that should be still presented as text style.

Parameters
useEmojiAsDefaultStyle: Boolean

whether to use the emoji style presentation for all emojis that would be presented as text style by default

setUseEmojiAsDefaultStyle

Added in 1.0.0
fun setUseEmojiAsDefaultStyle(
    useEmojiAsDefaultStyle: Boolean,
    emojiAsDefaultStyleExceptions: (Mutable)List<Int!>?
): EmojiCompat.Config
Parameters
emojiAsDefaultStyleExceptions: (Mutable)List<Int!>?

Contains the exception emojis which will be still presented as text style even if the useEmojiAsDefaultStyle flag is set to true. This list will be ignored if useEmojiAsDefaultStyle is false. Note that emojis with default emoji style presentation will remain emoji style regardless the value of useEmojiAsDefaultStyle or whether they are included in the exceptions list or not. When no exception is wanted, the method setUseEmojiAsDefaultStyle should be used instead.

unregisterInitCallback

Added in 1.0.0
fun unregisterInitCallback(initCallback: EmojiCompat.InitCallback): EmojiCompat.Config

Unregisters a callback that was added before.

Parameters
initCallback: EmojiCompat.InitCallback

the initialization callback to be removed, cannot be null

Returns
EmojiCompat.Config

EmojiCompat.Config instance

Protected functions

getMetadataRepoLoader

Added in 1.0.0
protected fun getMetadataRepoLoader(): EmojiCompat.MetadataRepoLoader

Returns the MetadataRepoLoader.