diff options
Diffstat (limited to 'java/src')
3 files changed, 30 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 49b35137f..291ed6d07 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -523,7 +523,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen suggest.close(); } if (currentSettingsValues.mUsePersonalizedDicts) { - PersonalizationDictionarySessionRegistrar.init(this); + if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) { + PersonalizationDictionarySessionRegistrar.init(this, + mInputLogic.mSuggest.mDictionaryFacilitator); + } else { + PersonalizationDictionarySessionRegistrar.close(this); + } } else { PersonalizationHelper.removeAllPersonalizedDictionaries(this); PersonalizationDictionarySessionRegistrar.resetAll(this); @@ -564,6 +569,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen new DictionaryFacilitatorForSuggest(this /* context */, subtypeLocale, settingsValues, this /* DictionaryInitializationListener */, oldDictionaryFacilitator); + PersonalizationDictionarySessionRegistrar.onConfigurationChanged( + this, getResources().getConfiguration(), dictionaryFacilitator); final Suggest newSuggest = new Suggest(subtypeLocale, dictionaryFacilitator); if (settingsValues.mCorrectionEnabled) { newSuggest.setAutoCorrectionThreshold(settingsValues.mAutoCorrectionThreshold); @@ -595,7 +602,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen ResearchLogger.getInstance().onDestroy(); } unregisterReceiver(mDictionaryPackInstallReceiver); - PersonalizationDictionarySessionRegistrar.onDestroy(this); + PersonalizationDictionarySessionRegistrar.close(this); LatinImeLogger.commit(); LatinImeLogger.onDestroy(); super.onDestroy(); @@ -615,7 +622,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mOptionsDialog.dismiss(); } } - PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf); + PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf, + mInputLogic.mSuggest.mDictionaryFacilitator); super.onConfigurationChanged(conf); } diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java index b0ab60357..860575a1f 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java +++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java @@ -273,6 +273,18 @@ public final class SubtypeSwitcher { return mNeedsToDisplayLanguage.getValue(); } + public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypes() { + final Locale systemLocale = mResources.getConfiguration().locale; + final List<InputMethodSubtype> enabledSubtypesOfThisIme = + mRichImm.getMyEnabledInputMethodSubtypeList(true); + for (final InputMethodSubtype subtype : enabledSubtypesOfThisIme) { + if (!systemLocale.equals(SubtypeLocaleUtils.getSubtypeLocale(subtype))) { + return false; + } + } + return true; + } + private static InputMethodSubtype sForcedSubtypeForTesting = null; @UsedForTesting void forceSubtype(final InputMethodSubtype subtype) { diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java index 76965112f..d6c0dc0dc 100644 --- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java +++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java @@ -19,11 +19,15 @@ package com.android.inputmethod.latin.personalization; import android.content.Context; import android.content.res.Configuration; +import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest; + public class PersonalizationDictionarySessionRegistrar { - public static void init(final Context context) { + public static void init(final Context context, + final DictionaryFacilitatorForSuggest dictionaryFacilitator) { } - public static void onConfigurationChanged(final Context context, final Configuration conf) { + public static void onConfigurationChanged(final Context context, final Configuration conf, + final DictionaryFacilitatorForSuggest dictionaryFacilitator) { } public static void onUpdateData(final Context context, final String type) { @@ -35,6 +39,6 @@ public class PersonalizationDictionarySessionRegistrar { public static void resetAll(final Context context) { } - public static void onDestroy(final Context context) { + public static void close(final Context context) { } } |