From 136f060d6a53b6f73e988feac9ef44561681b203 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Fri, 1 Sep 2023 20:23:54 +0200 Subject: [PATCH] consider contacts dictionary when removing suggestions, fixes #114 --- .../inputmethod/latin/DictionaryFacilitatorImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 90c24897f..f5a4490c4 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 @@ -982,8 +982,16 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { userDict.removeUnigramEntryDynamically(word); } - // add to blacklist if in main dictionary - if (group.getDict(Dictionary.TYPE_MAIN).isValidWord(word) && group.blacklist.add(word)) { + final ExpandableBinaryDictionary contactsDict = group.getSubDict(Dictionary.TYPE_CONTACTS); + final boolean isInContacts; + if (contactsDict != null) { + isInContacts = contactsDict.isInDictionary(word); + if (isInContacts) + contactsDict.removeUnigramEntryDynamically(word); // will be gone until next reload of dict + } else isInContacts = false; + + // add to blacklist if in main or contacts dictionaries + if ((isInContacts || group.getDict(Dictionary.TYPE_MAIN).isValidWord(word)) && group.blacklist.add(word)) { // write to file if word wasn't already in blacklist ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD).execute(() -> { try {