From 12849196ad70d431cc6636b858eedd641035822d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 16 May 2022 12:58:58 -0300 Subject: [PATCH] Replace isValidEmoji by method in EmojiHelper Signed-off-by: Vitor Mattos --- apps/user_status/lib/Service/EmojiService.php | 41 ++----------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/apps/user_status/lib/Service/EmojiService.php b/apps/user_status/lib/Service/EmojiService.php index 0f197933872..9254c250b6b 100644 --- a/apps/user_status/lib/Service/EmojiService.php +++ b/apps/user_status/lib/Service/EmojiService.php @@ -26,6 +26,7 @@ declare(strict_types=1); */ namespace OCA\UserStatus\Service; +use OC\Comments\EmojiHelper; use OCP\IDBConnection; /** @@ -60,43 +61,7 @@ class EmojiService { * @return bool */ public function isValidEmoji(string $emoji): bool { - $intlBreakIterator = \IntlBreakIterator::createCharacterInstance(); - $intlBreakIterator->setText($emoji); - - $characterCount = 0; - while ($intlBreakIterator->next() !== \IntlBreakIterator::DONE) { - $characterCount++; - } - - if ($characterCount !== 1) { - return false; - } - - $codePointIterator = \IntlBreakIterator::createCodePointInstance(); - $codePointIterator->setText($emoji); - - foreach ($codePointIterator->getPartsIterator() as $codePoint) { - $codePointType = \IntlChar::charType($codePoint); - - // If the current code-point is an emoji or a modifier (like a skin-tone) - // just continue and check the next character - if ($codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL || - $codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_LETTER || - $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_SYMBOL || - $codePointType === \IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES) { - continue; - } - - // If it's neither a modifier nor an emoji, we only allow - // a zero-width-joiner or a variation selector 16 - $codePointValue = \IntlChar::ord($codePoint); - if ($codePointValue === 8205 || $codePointValue === 65039) { - continue; - } - - return false; - } - - return true; + $emojiHelper = new EmojiHelper($this->db); + return $emojiHelper->isValidEmoji($emoji); } } -- 2.39.5