Skip to content

Commit e7db5b2

Browse files
committed
Source English emoji shortcuts from gemoji correctly
1 parent 95ab262 commit e7db5b2

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

java/src/org/futo/inputmethod/latin/uix/actions/EmojiAction.kt

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,11 @@ class PersistentEmojiState : PersistentActionState {
787787
if (loadedTranslations.contains(language)) return
788788
loadedTranslations.put(language, EmojiTranslations(hashMapOf()))
789789

790+
if(language == "en") {
791+
// Shortcuts are sourced from gemoji
792+
GlobalScope.launch(Dispatchers.IO) { loadEmojis(context) }
793+
}
794+
790795
GlobalScope.launch(Dispatchers.IO) {
791796
val inputStream = GZIPInputStream(context.resources.openRawResource(R.raw.emoji_i18n))
792797

@@ -832,7 +837,7 @@ class PersistentEmojiState : PersistentActionState {
832837
}
833838
}.reversed().toMap()
834839

835-
loadedTranslatedShortcuts.put(language, aliases)
840+
if(language != "en") loadedTranslatedShortcuts.put(language, aliases)
836841
}
837842
}
838843

@@ -852,7 +857,8 @@ class PersistentEmojiState : PersistentActionState {
852857
.toList()
853858

854859
val englishShortcuts = hashMapOf<String, String>()
855-
val englishTranslations = hashMapOf<String, EmojiNames>()
860+
val englishLooseShortcuts = hashMapOf<String, String>()
861+
//val englishTranslations = hashMapOf<String, EmojiNames>()
856862

857863
emojis.value = (emojiData + supplementalEmoteData).mapNotNull {
858864
val emoji = it.jsonObject["emoji"]!!.jsonPrimitive.content
@@ -869,12 +875,10 @@ class PersistentEmojiState : PersistentActionState {
869875
if(!supported) {
870876
null
871877
} else {
872-
englishTranslations.put(emoji, EmojiNames((tags + aliases)
873-
.flatMap { listOf(it) + it.split("_") }
874-
.toSet().toList()))
878+
//englishTranslations.put(emoji, EmojiNames((tags + aliases)
879+
// .flatMap { listOf(it) + it.split("_") }
880+
// .toSet().toList()))
875881

876-
// Add absolute alias matches first (e.g. "joy") and only later put first-word
877-
// tag/alias matches (e.g. "joy_cat")
878882
aliases.forEach { x ->
879883
if(!englishShortcuts.containsKey(x)) {
880884
englishShortcuts.put(x, emoji)
@@ -883,8 +887,8 @@ class PersistentEmojiState : PersistentActionState {
883887

884888
(tags + aliases).forEach { x ->
885889
val v = x.split("_").first()
886-
if(!englishShortcuts.containsKey(v)) {
887-
englishShortcuts.put(v, emoji)
890+
if(!englishLooseShortcuts.containsKey(v)) {
891+
englishLooseShortcuts.put(v, emoji)
888892
}
889893
}
890894

@@ -905,6 +909,12 @@ class PersistentEmojiState : PersistentActionState {
905909
put(it.emoji, it)
906910
}
907911
}
912+
913+
loadedTranslatedShortcuts["en"] = englishShortcuts.apply {
914+
englishLooseShortcuts.forEach {
915+
if(!containsKey(it.key)) put(it.key, it.value)
916+
}
917+
}
908918
}
909919
}
910920
}

0 commit comments

Comments
 (0)