aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java8
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java12
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java7
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java2
4 files changed, 24 insertions, 5 deletions
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<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/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index b365003a5..c867ab3d3 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -1113,8 +1113,11 @@ public final class InputLogic {
keyboardSwitcher.getKeyboard());
mWordComposer.setCursorPositionWithinWord(
typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
- mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor,
- expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor());
+ // TODO: Change these two lines to setComposingRegion(cursorPosition,
+ // cursorPosition + range.getNumberOfCharsInWordAfterCursor());
+ mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor,
+ typedWord.length() - numberOfCharsInWordBeforeCursor);
+ mConnection.setComposingText(typedWord, 1);
if (suggestions.isEmpty()) {
// We come here if there weren't any suggestion spans on this word. We will try to
// compute suggestions for it instead.
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) {
}
}