[Tizen] Fix ascii digits sequence issue 53/319653/1
authorBowon Ryu <bowon.ryu@samsung.com>
Wed, 12 Feb 2025 10:06:44 +0000 (19:06 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Fri, 14 Feb 2025 07:20:45 +0000 (16:20 +0900)
If it is not a variation sequence, digits do not create a new sequence.

TODO:
Conditional statements for supporting various emojis are
becoming increasingly complex and difficult to maintain.
We need to refactor and implement the emoji standard table.

Change-Id: I17edef73bbc6e47a60cc4ba4e4e9f6a2c2932d94
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
dali-toolkit/internal/text/emoji-helper.cpp

index 0000bdde1c0a4b59d9ba5adeece0d76b6c11856b..112d70fc362f9bedde1dea16fe8cff701fbf29d2 100644 (file)
@@ -132,6 +132,11 @@ bool IsNewVariationSelectorSequence(const Character* const         textBuffer,
           isNewVariationSelectorSequence = currentRunScript != TextAbstraction::EMOJI_TEXT;
           currentCharacterScript         = TextAbstraction::EMOJI_TEXT;
         }
+        else if(TextAbstraction::IsASCIIDigits(currentCharacter))
+        {
+          // There is no variation selector.
+          isNewVariationSelectorSequence = false;
+        }
         else if(!TextAbstraction::IsZeroWidthJoiner(characterVS))
         {
           // Start of a new sequence if the next glyph is not a variation selector or zwj.
@@ -147,7 +152,7 @@ bool IsNewVariationSelectorSequence(const Character* const         textBuffer,
       if(currentCharacterIndex > 0)
       {
         Character prevCharacter = *(textBuffer + currentCharacterIndex - 1);
-        if(TextAbstraction::IsEmojiVariationSequences(prevCharacter))
+        if(TextAbstraction::IsEmojiVariationSequences(prevCharacter) && !TextAbstraction::IsASCIIDigits(prevCharacter))
         {
           // The end of a variation sequence, start of a new sequence.
           isNewVariationSelectorSequence = true;