Use EmojiCompat.loadState to prevent crash

This commit is contained in:
Sylvain Berfini 2023-04-11 15:57:07 +02:00
parent ae54179976
commit f3a6480278

View file

@ -79,12 +79,12 @@ class AppUtils {
val split = displayName.uppercase(Locale.getDefault()).split(" ")
var initials = ""
var characters = 0
val emoji = emojiCompat
for (i in split.indices) {
if (split[i].isNotEmpty()) {
try {
val emoji = emojiCompat
if (emoji?.hasEmojiGlyph(split[i]) == true) {
if (emoji?.loadState == EmojiCompat.LOAD_STATE_SUCCEEDED && emoji.hasEmojiGlyph(split[i])) {
val glyph = emoji.process(split[i])
if (characters > 0) { // Limit initial to 1 emoji only
Log.d("[App Utils] We limit initials to one emoji only")
@ -111,6 +111,11 @@ class AppUtils {
val emoji = emojiCompat
emoji ?: return false
if (emoji.loadState != EmojiCompat.LOAD_STATE_SUCCEEDED) {
Log.w("[App Utils] Can't check emoji presence in text due to EmojiCompat library not loaded yet [${emoji.loadState}]")
return false
}
try {
for (split in text.split(" ")) {
// We only check the first and last chars of the split for commodity