aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java14
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java12
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java10
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) {
}
}