Loading java-overridable/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdater.java +1 −8 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.inputmethod.latin.personalization; import java.util.Locale; import android.content.Context; import com.android.inputmethod.latin.DictionaryFacilitator; Loading @@ -33,12 +31,7 @@ public class PersonalizationDictionaryUpdater { mDictionaryFacilitator = dictionaryFacilitator; } public Locale getLocale() { return null; } public void onLoadSettings(final boolean usePersonalizedDicts, final boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes) { public void onLoadSettings(final boolean usePersonalizedDicts) { if (!mDictCleared) { // Clear and never update the personalization dictionary. PersonalizationHelper.removeAllPersonalizationDictionaries(mContext); Loading java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +5 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,10 @@ public class DictionaryFacilitator { mPersonalizationDictionaryFacilitator.updateEnabledSubtypes(enabledSubtypes); } public void setIsMonolingualUser(final boolean isMonolingualUser) { mPersonalizationDictionaryFacilitator.setIsMonolingualUser(isMonolingualUser); } public Locale getLocale() { return mDictionaryGroup.mLocale; } Loading Loading @@ -600,7 +604,7 @@ public class DictionaryFacilitator { final SpacingAndPunctuations spacingAndPunctuations, final AddMultipleDictionaryEntriesCallback callback) { mPersonalizationDictionaryFacilitator.addEntriesToPersonalizationDictionariesToUpdate( personalizationDataChunk, spacingAndPunctuations, callback); getLocale(), personalizationDataChunk, spacingAndPunctuations, callback); } public void addPhraseToContextualDictionary(final String[] phrase, final int probability, Loading java/src/com/android/inputmethod/latin/LatinIME.java +3 −6 Original line number Diff line number Diff line Loading @@ -614,9 +614,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private void refreshPersonalizationDictionarySession( final SettingsValues currentSettingsValues) { mPersonalizationDictionaryUpdater.onLoadSettings( currentSettingsValues.mUsePersonalizedDicts, mDictionaryFacilitator.setIsMonolingualUser( mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes()); mPersonalizationDictionaryUpdater.onLoadSettings( currentSettingsValues.mUsePersonalizedDicts); mContextualDictionaryUpdater.onLoadSettings(currentSettingsValues.mUsePersonalizedDicts); final boolean shouldKeepUserHistoryDictionaries; if (currentSettingsValues.mUsePersonalizedDicts) { Loading Loading @@ -734,10 +735,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen cleanupInternalStateForFinishInput(); } } // TODO: Remove this test. if (!conf.locale.equals(mPersonalizationDictionaryUpdater.getLocale())) { refreshPersonalizationDictionarySession(settingsValues); } super.onConfigurationChanged(conf); } Loading java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java +14 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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(); Loading java/src/com/android/inputmethod/latin/personalization/PersonalizationDataChunk.java +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import java.util.Collections; import java.util.List; public class PersonalizationDataChunk { public static final String LANGUAGE_UNKNOWN = ""; public final boolean mInputByUser; public final List<String> mTokens; public final int mTimestampInSeconds; Loading Loading
java-overridable/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdater.java +1 −8 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.inputmethod.latin.personalization; import java.util.Locale; import android.content.Context; import com.android.inputmethod.latin.DictionaryFacilitator; Loading @@ -33,12 +31,7 @@ public class PersonalizationDictionaryUpdater { mDictionaryFacilitator = dictionaryFacilitator; } public Locale getLocale() { return null; } public void onLoadSettings(final boolean usePersonalizedDicts, final boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes) { public void onLoadSettings(final boolean usePersonalizedDicts) { if (!mDictCleared) { // Clear and never update the personalization dictionary. PersonalizationHelper.removeAllPersonalizationDictionaries(mContext); Loading
java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +5 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,10 @@ public class DictionaryFacilitator { mPersonalizationDictionaryFacilitator.updateEnabledSubtypes(enabledSubtypes); } public void setIsMonolingualUser(final boolean isMonolingualUser) { mPersonalizationDictionaryFacilitator.setIsMonolingualUser(isMonolingualUser); } public Locale getLocale() { return mDictionaryGroup.mLocale; } Loading Loading @@ -600,7 +604,7 @@ public class DictionaryFacilitator { final SpacingAndPunctuations spacingAndPunctuations, final AddMultipleDictionaryEntriesCallback callback) { mPersonalizationDictionaryFacilitator.addEntriesToPersonalizationDictionariesToUpdate( personalizationDataChunk, spacingAndPunctuations, callback); getLocale(), personalizationDataChunk, spacingAndPunctuations, callback); } public void addPhraseToContextualDictionary(final String[] phrase, final int probability, Loading
java/src/com/android/inputmethod/latin/LatinIME.java +3 −6 Original line number Diff line number Diff line Loading @@ -614,9 +614,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private void refreshPersonalizationDictionarySession( final SettingsValues currentSettingsValues) { mPersonalizationDictionaryUpdater.onLoadSettings( currentSettingsValues.mUsePersonalizedDicts, mDictionaryFacilitator.setIsMonolingualUser( mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes()); mPersonalizationDictionaryUpdater.onLoadSettings( currentSettingsValues.mUsePersonalizedDicts); mContextualDictionaryUpdater.onLoadSettings(currentSettingsValues.mUsePersonalizedDicts); final boolean shouldKeepUserHistoryDictionaries; if (currentSettingsValues.mUsePersonalizedDicts) { Loading Loading @@ -734,10 +735,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen cleanupInternalStateForFinishInput(); } } // TODO: Remove this test. if (!conf.locale.equals(mPersonalizationDictionaryUpdater.getLocale())) { refreshPersonalizationDictionarySession(settingsValues); } super.onConfigurationChanged(conf); } Loading
java/src/com/android/inputmethod/latin/PersonalizationDictionaryFacilitator.java +14 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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(); Loading
java/src/com/android/inputmethod/latin/personalization/PersonalizationDataChunk.java +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import java.util.Collections; import java.util.List; public class PersonalizationDataChunk { public static final String LANGUAGE_UNKNOWN = ""; public final boolean mInputByUser; public final List<String> mTokens; public final int mTimestampInSeconds; Loading