diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java index 598f536f6..358d409cf 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java @@ -890,13 +890,18 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { weightForLocale, weightOfLangModelVsSpatialModel); if (null == dictionarySuggestions) continue; - // don't add blacklisted words - // this may not be the most efficient way, but getting suggestions is much slower anyway + // for some reason, garbage words are produced when glide typing + // for user history and main dictionary we can filter them out by checking whether the + // dictionary actually contains the word + // but personal dictionary and addon dictionaries may contain shortcuts, which do not + // pass an isInDictionary check (e.g. emojis) + // (if the main dict contains shortcuts to non-words, this will break) + final boolean checkForGarbage = composedData.mIsBatchMode && (dictType.equals(Dictionary.TYPE_USER_HISTORY) || dictType.equals(Dictionary.TYPE_MAIN)); for (SuggestedWordInfo info : dictionarySuggestions) { - if (!isBlacklisted(info.getWord())) { - // for some reason, user history produces garbage words in batch mode - // this also happens for other dictionaries, but for those the score usually is much lower, so they are less visible - if (composedData.mIsBatchMode && dictType.equals(Dictionary.TYPE_USER_HISTORY) && !dictionary.isInDictionary(info.getWord())) + if (!isBlacklisted(info.getWord())) { // don't add blacklisted words + if (checkForGarbage + && info.mSourceDict.mDictType.equals(dictType) // to only check history and "main main dictionary", and not addons like emoji + && !dictionary.isInDictionary(info.getWord())) continue; suggestions.add(info); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java index cf098718f..cd72d5070 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java @@ -495,7 +495,9 @@ public final class Suggest { Locale.ROOT, "%d (%4.2f), %s", cur.mScore, normalizedScore, cur.mSourceDict.mDictType + ":" + cur.mSourceDict.mLocale); } else { - scoreInfoString = Integer.toString(cur.mScore); + scoreInfoString = String.format( + Locale.ROOT, "%d, %s", cur.mScore, + cur.mSourceDict.mDictType + ":" + cur.mSourceDict.mLocale); } cur.setDebugString(scoreInfoString); suggestionsList.add(cur);