mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-29 06:52:50 +02:00
Quick fix for multiple emoji's in one line
This commit is contained in:
@@ -27,6 +27,7 @@ fun String.firstFullCharOld(): String {
|
|||||||
|
|
||||||
fun String.firstFullChar(): String {
|
fun String.firstFullChar(): String {
|
||||||
var isInJoin = false
|
var isInJoin = false
|
||||||
|
var hasHadSecondChance = false
|
||||||
var start = 0
|
var start = 0
|
||||||
var previousCharLength = 0
|
var previousCharLength = 0
|
||||||
var next: Int
|
var next: Int
|
||||||
@@ -48,8 +49,14 @@ fun String.firstFullChar(): String {
|
|||||||
isInJoin = true
|
isInJoin = true
|
||||||
} else {
|
} else {
|
||||||
// stops when two chars are not joined together
|
// stops when two chars are not joined together
|
||||||
if ((previousCharLength > 0) && (!isInJoin) && Character.charCount(codePoint) == 1) {
|
if (previousCharLength > 0 && !isInJoin) {
|
||||||
break
|
if (Character.charCount(codePoint) == 1 || hasHadSecondChance) {
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
hasHadSecondChance = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
hasHadSecondChance = false
|
||||||
}
|
}
|
||||||
|
|
||||||
isInJoin = false
|
isInJoin = false
|
||||||
|
@@ -20,6 +20,11 @@ class CharsetTest {
|
|||||||
Assert.assertEquals("\uD83E\uDDD1\uD83C\uDFFE", "\uD83E\uDDD1\uD83C\uDFFEHi".firstFullChar())
|
Assert.assertEquals("\uD83E\uDDD1\uD83C\uDFFE", "\uD83E\uDDD1\uD83C\uDFFEHi".firstFullChar())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testUTF32JoinChar2() {
|
||||||
|
Assert.assertEquals("\uD83E\uDDD1\uD83C\uDFFE", "\uD83E\uDDD1\uD83C\uDFFEHi".firstFullChar())
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAsciiWithUTF32Char() {
|
fun testAsciiWithUTF32Char() {
|
||||||
Assert.assertEquals("H", "Hi\uD83E\uDDD1\uD83C\uDFFEHi".firstFullChar())
|
Assert.assertEquals("H", "Hi\uD83E\uDDD1\uD83C\uDFFEHi".firstFullChar())
|
||||||
@@ -54,4 +59,9 @@ class CharsetTest {
|
|||||||
fun testVariation() {
|
fun testVariation() {
|
||||||
Assert.assertEquals("\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68", "\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68ddd".firstFullChar())
|
Assert.assertEquals("\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68", "\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68ddd".firstFullChar())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testMultipleEmoji() {
|
||||||
|
Assert.assertEquals("\uD83E\uDEC2\uD83E\uDEC2", "\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2\uD83E\uDEC2".firstFullChar())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user