diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java index 03c108f0e..aa8e312a4 100644 --- a/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java +++ b/java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java @@ -44,6 +44,7 @@ public class PersonalizationDictionaryFacilitator { private final HashMap<String, HashSet<Locale>> mLangToLocalesMap = new HashMap<>(); private final HashMap<Locale, ExpandableBinaryDictionary> mPersonalizationDictsToUpdate = new HashMap<>(); + private boolean mIsMonolingualUser = false;; PersonalizationDictionaryFacilitator(final Context context, final DistracterFilter distracterFilter) { @@ -81,6 +82,10 @@ public class PersonalizationDictionaryFacilitator { } } + public void setIsMonolingualUser(final boolean isMonolingualUser) { + mIsMonolingualUser = isMonolingualUser; + } + /** * Flush personalization dictionaries to dictionary files. Close dictionaries after writing * files except the dictionary that is used for generating suggestions. @@ -141,12 +146,18 @@ public class PersonalizationDictionaryFacilitator { personalizationDict.addMultipleDictionaryEntriesDynamically(languageModelParams, callback); } - public void addEntriesToPersonalizationDictionariesToUpdate( + public void addEntriesToPersonalizationDictionariesToUpdate(final Locale defaultLocale, final PersonalizationDataChunk personalizationDataChunk, final SpacingAndPunctuations spacingAndPunctuations, final AddMultipleDictionaryEntriesCallback callback) { - final HashSet<Locale> locales = - mLangToLocalesMap.get(personalizationDataChunk.mDetectedLanguage); + final String language = personalizationDataChunk.mDetectedLanguage; + final HashSet<Locale> locales; + if (mIsMonolingualUser && PersonalizationDataChunk.LANGUAGE_UNKNOWN.equals(language) + && mLangToLocalesMap.size() == 1) { + locales = mLangToLocalesMap.get(defaultLocale.getLanguage()); + } else { + locales = mLangToLocalesMap.get(language); + } if (locales == null || locales.isEmpty()) { if (callback != null) { callback.onFinished(); |