Status Update
Comments
ei...@salesforce.com <ei...@salesforce.com> #2
My apologies! Explicitly enabling EmojiCompat by calling setEmojiCompatEnabled(true)
does not resolve this issue.
I've tracked this down a bit more to this condition in EmojiTextWatcher:
Our app replaces text referencing the name of an emoji with the emoji itself.
Example: :melting_face: -> ðŸ«
This results in the before
value being greater than after
before <= after == false
This condition in EmojiTextWatcher prevents EmojiCompat processing from executing on the updated text, resulting in tofu on older Android devices that do not have glyphs for the replaced emoji code points.
Why does EmojiTextWatcher
have this condition? Can it be removed?
Thank you!
Workaround/Solution
Copy TextWatcher
that executes EmojiCompat.get().process(..)
when before > after == true
and add it to the EditText
via addTextChangedListener
ei...@salesforce.com <ei...@salesforce.com> #3
This would also impact any EditText widget and not just AppCompatMultiAutoCompleteTextView
se...@google.com <se...@google.com> #4
Thanks for the excellent bug report!
I'll take a look and see if I can remove the condition. For now please continue using your workaround (it'll be probably next year before a stable version of EC has the fiX).
Thanks, Sean
ei...@salesforce.com <ei...@salesforce.com> #5
Thanks, Sean! Much appreciated!
se...@google.com <se...@google.com>
se...@google.com <se...@google.com> #6
This won't make 1.4. Evaluating for 1.5.
Description
Version used: 1.5.1
Devices/Android versions reproduced on: Pixel 2, Android 11 (real device)
AppCompatMultiAutoCompleteTextView will not render emoji using EmojiCompat unless explicitly enabled during "init {}"
- API call: