EmojiTextViewHelper
public final class EmojiTextViewHelper
Utility class to enhance custom TextView widgets with EmojiCompat.
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(@NonNull TextView textView)Default constructor. |
EmojiTextViewHelper(Allows skipping of all processing until EmojiCompat.init is called. |
Public methods |
|
|---|---|
@NonNull InputFilter[] |
getFilters(@NonNull InputFilter[] filters)Appends EmojiCompat InputFilters to the widget InputFilters. |
boolean |
|
void |
setAllCaps(boolean allCaps)Call when allCaps is set on TextView. |
void |
setEnabled(boolean enabled)When enabled, methods will have their documented behavior. |
void |
Updates widget's TransformationMethod so that the transformed text can be processed. |
@Nullable TransformationMethod |
wrapTransformationMethod(Returns transformation method that can update the transformed text to display emojis. |
Public constructors
EmojiTextViewHelper
public EmojiTextViewHelper(@NonNull TextView textView)
Default constructor.
EmojiTextViewHelper
public EmojiTextViewHelper(
@NonNull TextView textView,
boolean expectInitializedEmojiCompat
)
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.
Public methods
getFilters
public @NonNull InputFilter[] getFilters(@NonNull InputFilter[] filters)
Appends EmojiCompat InputFilters to the widget InputFilters. Should be called by setFilters to update the InputFilters. When used on devices running API 18 or below, this method returns filters that is given as a parameter.
| Parameters | |
|---|---|
@NonNull InputFilter[] filters |
InputFilter array passed to |
| Returns | |
|---|---|
@NonNull InputFilter[] |
same copy if the array already contains EmojiCompat InputFilter. A new array copy if not. |
isEnabled
public boolean isEnabled()
| Returns | |
|---|---|
boolean |
current enabled state for this helper |
setAllCaps
public void setAllCaps(boolean allCaps)
Call when allCaps is set on TextView. When used on devices running API 18 or below, this method does nothing.
| Parameters | |
|---|---|
boolean allCaps |
allCaps parameter passed to |
setEnabled
public void setEnabled(boolean enabled)
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 again after calling setEnabled.
| Parameters | |
|---|---|
boolean enabled |
if this helper should process emoji. |
updateTransformationMethod
public void updateTransformationMethod()
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 |
wrapTransformationMethod
public @Nullable TransformationMethod wrapTransformationMethod(
@Nullable 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 | |
|---|---|
@Nullable TransformationMethod transformationMethod |
instance to be wrapped |