From 2e3bde0735d74812c0f75beb28c25e8a5cba8141 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 11 Jun 2025 13:06:21 +0200 Subject: [PATCH] Fix emoji parsing --- .../habitrpg/common/habitica/helpers/EmojiParser.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/habitrpg/common/habitica/helpers/EmojiParser.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/EmojiParser.kt index fa78c2fd9..4e231fa18 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/helpers/EmojiParser.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/EmojiParser.kt @@ -3,6 +3,8 @@ package com.habitrpg.common.habitica.helpers import java.util.regex.Pattern object EmojiParser { + private val pattern: Pattern = Pattern.compile("(:[^:\\s]+:)") + /** * Converts Cheat Sheet emoji-codes into unicode characters * @@ -14,12 +16,10 @@ object EmojiParser { return text } var returnString: String = text - val pattern = Pattern.compile("(:[^:]+:)") val matcher = pattern.matcher(text) while (matcher.find()) { val found = matcher.group() - if (EmojiMap.invertedEmojiMap[found] == null) continue - val hexInt = EmojiMap.invertedEmojiMap[found]!! + val hexInt = EmojiMap.invertedEmojiMap[found] ?: continue val replacement = String(Character.toChars(hexInt)) returnString = returnString.replace(found, replacement) } @@ -41,9 +41,8 @@ object EmojiParser { for (i in 0..charArray.size - 2) { val testString = String(charArray.copyOfRange(i, i + 2)) val test = testString.codePointAt(0) - if (EmojiMap.emojiMap.containsKey(test)) { - returnString = returnString.replace(testString, EmojiMap.emojiMap[test]!!) - } + val cheatCode = EmojiMap.emojiMap[test] ?: continue + returnString = returnString.replace(testString, cheatCode) } return returnString }