diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinIME.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 77def63f1..7a4164cf1 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -96,7 +96,8 @@ import java.util.Locale; * Input method implementation for Qwerty'ish keyboard. */ public class LatinIME extends InputMethodService implements KeyboardActionListener, - SuggestionStripView.Listener, Suggest.SuggestInitializationListener { + SuggestionStripView.Listener, + DictionaryFacilitatorForSuggest.DictionaryInitializationListener { private static final String TAG = LatinIME.class.getSimpleName(); private static final boolean TRACE = false; private static boolean DEBUG = false; @@ -513,12 +514,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // be done later inside {@see #initSuggest()} when the reopenDictionaries message is // processed. final SettingsValues currentSettingsValues = mSettings.getCurrent(); - if (!mHandler.hasPendingReopenDictionaries() && mInputLogic.mSuggest != null) { + final Suggest suggest = mInputLogic.mSuggest; + if (!mHandler.hasPendingReopenDictionaries() && suggest != null) { // May need to reset dictionaries depending on the user settings. - // TODO: Quit setting dictionaries from LatinIME. - mInputLogic.mSuggest.mDictionaryFacilitator.setAdditionalDictionaries( - mInputLogic.mSuggest.mDictionaryFacilitator /* oldDictionaryFacilitator */, - currentSettingsValues); + final DictionaryFacilitatorForSuggest oldDictionaryFacilitator = + suggest.mDictionaryFacilitator; + final DictionaryFacilitatorForSuggest dictionaryFacilitator = + new DictionaryFacilitatorForSuggest(currentSettingsValues, + oldDictionaryFacilitator); + // Create Suggest instance with the new dictionary facilitator. + mInputLogic.mSuggest = new Suggest(suggest /* oldSuggest */, dictionaryFacilitator); + suggest.close(); } if (currentSettingsValues.mUsePersonalizedDicts) { PersonalizationDictionarySessionRegistrar.init(this); @@ -555,19 +561,20 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } final SettingsValues settingsValues = mSettings.getCurrent(); - final Suggest newSuggest = new Suggest(this /* Context */, subtypeLocale, settingsValues, - this /* SuggestInitializationListener */); + final DictionaryFacilitatorForSuggest oldDictionaryFacilitator = + (mInputLogic.mSuggest == null) ? null : mInputLogic.mSuggest.mDictionaryFacilitator; + // Creates new dictionary facilitator for the new locale. + final DictionaryFacilitatorForSuggest dictionaryFacilitator = + new DictionaryFacilitatorForSuggest(this /* context */, subtypeLocale, + settingsValues, this /* DictionaryInitializationListener */, + oldDictionaryFacilitator); + final Suggest newSuggest = new Suggest(subtypeLocale, dictionaryFacilitator); if (settingsValues.mCorrectionEnabled) { newSuggest.setAutoCorrectionThreshold(settingsValues.mAutoCorrectionThreshold); } - if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { ResearchLogger.getInstance().initDictionary(newSuggest.mDictionaryFacilitator); } - // TODO: Quit setting dictionaries from LatinIME. - newSuggest.mDictionaryFacilitator.setAdditionalDictionaries( - (mInputLogic.mSuggest == null) ? null : mInputLogic.mSuggest.mDictionaryFacilitator - /* oldDictionaryFacilitator */, settingsValues); final Suggest oldSuggest = mInputLogic.mSuggest; mInputLogic.mSuggest = newSuggest; if (oldSuggest != null) oldSuggest.close(); @@ -575,7 +582,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen /* package private */ void resetSuggestMainDict() { final Locale subtypeLocale = mSubtypeSwitcher.getCurrentSubtypeLocale(); - mInputLogic.mSuggest.mDictionaryFacilitator.resetMainDict(this, subtypeLocale, + mInputLogic.mSuggest.mDictionaryFacilitator.reloadMainDict(this, subtypeLocale, this /* SuggestInitializationListener */); } @@ -1974,7 +1981,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // DO NOT USE THIS for any other purpose than testing. This can break the keyboard badly. @UsedForTesting /* package for test */ void replaceMainDictionaryForTest(final Locale locale) { - mInputLogic.mSuggest.mDictionaryFacilitator.resetMainDict(this, locale, null); + mInputLogic.mSuggest.mDictionaryFacilitator.reloadMainDict(this, locale, null); } public void debugDumpStateAndCrashWithException(final String context) { |