# EmojiTextViewHelper

# EmojiTextViewHelper

Artifact:[androidx.emoji2:emoji2-views-helper](https://developer.android.com/jetpack/androidx/releases/emoji2)  
[View Source](https://cs.android.com/search?q=file:androidx/emoji2/viewsintegration/EmojiTextViewHelper.java+class:androidx.emoji2.viewsintegration.EmojiTextViewHelper)  
Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/emoji2/viewsintegration/EmojiTextViewHelper "View this page in Java")

<br />

```
class EmojiTextViewHelper
```

<br />

*** ** * ** ***

Utility class to enhance custom TextView widgets with[EmojiCompat](https://developer.android.com/reference/kotlin/androidx/emoji2/text/EmojiCompat).  

```kotlin
public class MyEmojiTextView extends TextView {
    public MyEmojiTextView(Context context) {
        super(context);
        init();
    }
    // ..
    private void init() {
        getEmojiTextViewHelper().updateTransformationMethod();
    }

    @Override
    public void setFilters(InputFilter[] filters) {
        super.setFilters(getEmojiTextViewHelper().getFilters(filters));
    }

    @Override
    public void setAllCaps(boolean allCaps) {
        super.setAllCaps(allCaps);
        getEmojiTextViewHelper().setAllCaps(allCaps);
    }

    private EmojiTextViewHelper getEmojiTextViewHelper() {
        if (mEmojiTextViewHelper == null) {
            mEmojiTextViewHelper = new EmojiTextViewHelper(this);
        }
        return mEmojiTextViewHelper;
    }
}
```

## Summary

|                                                                                                                                                                                                                             ### Public constructors                                                                                                                                                                                                                              |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [EmojiTextViewHelper](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#EmojiTextViewHelper(android.widget.TextView))`(textView: `[TextView](https://developer.android.com/reference/android/widget/TextView.html)`)` Default constructor.                                                                                                                                                                                     |
| [EmojiTextViewHelper](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#EmojiTextViewHelper(android.widget.TextView,boolean))`(` ` textView: `[TextView](https://developer.android.com/reference/android/widget/TextView.html)`,` ` expectInitializedEmojiCompat: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) `)` Allows skipping of all processing until EmojiCompat.init is called. |

|                                                                            ### Public functions                                                                            |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[InputFilter](https://developer.android.com/reference/android/text/InputFilter.html)`!>` | [getFilters](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#getFilters(android.text.InputFilter[]))`(filters: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[InputFilter](https://developer.android.com/reference/android/text/InputFilter.html)`!>)` Appends EmojiCompat InputFilters to the widget InputFilters.                       |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                                                                        | [isEnabled](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#isEnabled())`()`                                                                                                                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                                              | [setAllCaps](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#setAllCaps(boolean))`(allCaps: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Call when allCaps is set on TextView.                                                                                                                                                      |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                                              | [setEnabled](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#setEnabled(boolean))`(enabled: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` When enabled, methods will have their documented behavior.                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                                                              | [updateTransformationMethod](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#updateTransformationMethod())`()` Updates widget's TransformationMethod so that the transformed text can be processed.                                                                                                                                                                            |
| [TransformationMethod](https://developer.android.com/reference/android/text/method/TransformationMethod.html)`?`                                                           | [wrapTransformationMethod](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#wrapTransformationMethod(android.text.method.TransformationMethod))`(transformationMethod: `[TransformationMethod](https://developer.android.com/reference/android/text/method/TransformationMethod.html)`?)` Returns transformation method that can update the transformed text to display emojis. |

## Public constructors

### EmojiTextViewHelper

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
EmojiTextViewHelper(textView: TextView)
```

Default constructor.  

|                                          Parameters                                          |
|----------------------------------------------------------------------------------------------|-------------------|
| `textView: `[TextView](https://developer.android.com/reference/android/widget/TextView.html) | TextView instance |

### EmojiTextViewHelper

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
EmojiTextViewHelper(
    textView: TextView,
    expectInitializedEmojiCompat: Boolean
)
```

Allows skipping of all processing until EmojiCompat.init is called. This is useful when integrating EmojiTextViewHelper into libraries that subclass TextView that do not have control over EmojiCompat initialization by the app that uses the TextView subclass. If this helper is initialized prior to EmojiCompat.init, the TextView it's configuring will not display emoji using EmojiCompat after init is called until the transformation method and filter are updated. The easiest way to do that is call[setEnabled](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#setEnabled(boolean)).  

|                                                     Parameters                                                      |
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `textView: `[TextView](https://developer.android.com/reference/android/widget/TextView.html)                        | TextView instance                                                                                                                                                         |
| `expectInitializedEmojiCompat: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | if true, this helper will assume init has been called and throw if it has not. If false, the methods on this helper will have no effect until EmojiCompat.init is called. |

## Public functions

### getFilters

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun getFilters(filters: Array<InputFilter!>): Array<InputFilter!>
```

Appends EmojiCompat InputFilters to the widget InputFilters. Should be called by[setFilters](https://developer.android.com/reference/android/widget/TextView.html#setFilters(android.text.InputFilter[]))to update the InputFilters. When used on devices running API 18 or below, this method returns`filters`that is given as a parameter.  

|                                                                                      Parameters                                                                                       |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| `filters: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[InputFilter](https://developer.android.com/reference/android/text/InputFilter.html)`!>` | InputFilter array passed to[setFilters](https://developer.android.com/reference/android/widget/TextView.html#setFilters(android.text.InputFilter[])) |

|                                                                                  Returns                                                                                   |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[InputFilter](https://developer.android.com/reference/android/text/InputFilter.html)`!>` | same copy if the array already contains EmojiCompat InputFilter. A new array copy if not. |

### isEnabled

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun isEnabled(): Boolean
```  

|                                       Returns                                       |
|-------------------------------------------------------------------------------------|---------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | current enabled state for this helper |

### setAllCaps

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun setAllCaps(allCaps: Boolean): Unit
```

Call when allCaps is set on TextView. When used on devices running API 18 or below, this method does nothing.  

|                                           Parameters                                           |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| `allCaps: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | allCaps parameter passed to[setAllCaps](https://developer.android.com/reference/android/widget/TextView.html#setAllCaps(boolean)) |

### setEnabled

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun setEnabled(enabled: Boolean): Unit
```

When enabled, methods will have their documented behavior. When disabled, all methods will have no effect and emoji will not be processed. Setting this to disable will also have the side effect of setting both the transformation method and filter if enabled has changed since the last call. By default EmojiTextViewHelper is enabled. You do not need to call[updateTransformationMethod](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#updateTransformationMethod())again after calling setEnabled.  

|                                           Parameters                                           |
|------------------------------------------------------------------------------------------------|--------------------------------------|
| `enabled: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | if this helper should process emoji. |

### updateTransformationMethod

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun updateTransformationMethod(): Unit
```

Updates widget's TransformationMethod so that the transformed text can be processed. Should be called in the widget constructor. When used on devices running API 18 or below, this method does nothing.  

|                                                                                              See also                                                                                              |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [wrapTransformationMethod](https://developer.android.com/reference/kotlin/androidx/emoji2/viewsintegration/EmojiTextViewHelper#wrapTransformationMethod(android.text.method.TransformationMethod)) |   |

### wrapTransformationMethod

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0)  

```
fun wrapTransformationMethod(transformationMethod: TransformationMethod?): TransformationMethod?
```

Returns transformation method that can update the transformed text to display emojis. When used on devices running API 18 or below, this method returns`transformationMethod`that is given as a parameter.  

|                                                                Parameters                                                                |
|------------------------------------------------------------------------------------------------------------------------------------------|------------------------|
| `transformationMethod: `[TransformationMethod](https://developer.android.com/reference/android/text/method/TransformationMethod.html)`?` | instance to be wrapped |