diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 5a5674f8f..8ea868d51 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -523,7 +523,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen suggest.close(); } if (currentSettingsValues.mUsePersonalizedDicts) { - PersonalizationDictionarySessionRegistrar.init(this); + if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) { + PersonalizationDictionarySessionRegistrar.init(this); + } else { + PersonalizationDictionarySessionRegistrar.close(this); + } } else { PersonalizationHelper.removeAllPersonalizedDictionaries(this); PersonalizationDictionarySessionRegistrar.resetAll(this); @@ -595,7 +599,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(); 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 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..9a897a582 100644 --- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java +++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java @@ -35,6 +35,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) { } }