From f3a6480278e44458035ec755a5b4ed4a5fa923d5 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 11 Apr 2023 15:57:07 +0200 Subject: [PATCH] Use EmojiCompat.loadState to prevent crash --- app/src/main/java/org/linphone/utils/AppUtils.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/utils/AppUtils.kt b/app/src/main/java/org/linphone/utils/AppUtils.kt index 8b43b3bbd..1faec9ebe 100644 --- a/app/src/main/java/org/linphone/utils/AppUtils.kt +++ b/app/src/main/java/org/linphone/utils/AppUtils.kt @@ -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