1
0
Fork 0

fixed custom emoji frequencies not being updated; no more error messages when typing factory emojis

This commit is contained in:
sspanak 2024-08-22 15:50:01 +03:00 committed by Dimo Karaivanov
parent 8852239a77
commit 8163f8ab20
2 changed files with 18 additions and 5 deletions

View file

@ -18,6 +18,7 @@ import io.github.sspanak.tt9.preferences.settings.SettingsStore;
import io.github.sspanak.tt9.util.Characters;
import io.github.sspanak.tt9.util.Logger;
import io.github.sspanak.tt9.util.Text;
import io.github.sspanak.tt9.util.TextTools;
public class ModePredictive extends InputMode {
private final String LOG_TAG = getClass().getSimpleName();
@ -329,14 +330,19 @@ public class ModePredictive extends InputMode {
return;
}
if (Characters.isStaticEmoji(currentWord)) {
return;
}
// increment the frequency of the given word
try {
String sequence = language.getDigitSequenceForWord(currentWord);
Language workingLanguage = TextTools.isGraphic(currentWord) ? new EmojiLanguage() : language;
String sequence = workingLanguage.getDigitSequenceForWord(currentWord);
// emoji and punctuation are not in the database, so there is no point in
// punctuation and special chars are not in the database, so there is no point in
// running queries that would update nothing
if (!sequence.startsWith(NaturalLanguage.PUNCTUATION_KEY) && !sequence.startsWith(NaturalLanguage.SPECIAL_CHARS_KEY)) {
WordStoreAsync.makeTopWord(language, currentWord, sequence);
if (!sequence.equals(NaturalLanguage.PUNCTUATION_KEY) && !sequence.startsWith(NaturalLanguage.SPECIAL_CHARS_KEY)) {
WordStoreAsync.makeTopWord(workingLanguage, currentWord, sequence);
}
} catch (Exception e) {
Logger.e(LOG_TAG, "Failed incrementing priority of word: '" + currentWord + "'. " + e.getMessage());

View file

@ -91,6 +91,14 @@ public class Characters {
))
));
public static boolean isStaticEmoji(String emoji) {
for (ArrayList<String> group : Emoji) {
if (group.contains(emoji)) {
return true;
}
}
return false;
}
public static boolean isGraphic(char ch) {
return !(ch < 256 || Character.isLetterOrDigit(ch) || Character.isAlphabetic(ch));
@ -100,7 +108,6 @@ public class Characters {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M;
}
public static ArrayList<String> getEmoji(int level) {
if (noEmojiSupported()) {
return new ArrayList<>(TextEmoticons);