|
|
|
@ -7,15 +7,20 @@
@@ -7,15 +7,20 @@
|
|
|
|
|
|
|
|
|
|
package io.element.android.features.messages.impl.utils |
|
|
|
|
|
|
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
|
import androidx.compose.ui.platform.LocalInspectionMode |
|
|
|
|
import com.sigpwned.emoji4j.core.Grapheme.Type.EMOJI |
|
|
|
|
import com.sigpwned.emoji4j.core.Grapheme.Type.PICTOGRAPHIC |
|
|
|
|
import com.sigpwned.emoji4j.core.GraphemeMatchResult |
|
|
|
|
import com.sigpwned.emoji4j.core.GraphemeMatcher |
|
|
|
|
import io.element.android.features.messages.impl.timeline.model.event.AN_EMOJI_ONLY_TEXT |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns true if the string consists exclusively of "emoji or pictographic graphemes". |
|
|
|
|
*/ |
|
|
|
|
@Composable |
|
|
|
|
fun String.containsOnlyEmojis(): Boolean { |
|
|
|
|
if (LocalInspectionMode.current) return this == AN_EMOJI_ONLY_TEXT |
|
|
|
|
if (isEmpty()) return false |
|
|
|
|
|
|
|
|
|
val matcher = GraphemeMatcher(this) |
|
|
|
|