Add SubtypeUtils.setAditionalInputMethodSubtypes method
Change-Id: Ia3043346ed87297e01d505980555fdf29ce4f96f
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b30d1e3..ddf21f7 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -442,9 +442,8 @@
loadSettings();
- mImm.setAdditionalInputMethodSubtypes(
- SubtypeUtils.getInputMethodId(getPackageName()),
- mSettingsValues.getPrefefinedAdditionalSubtypes());
+ SubtypeUtils.setAditionalInputMethodSubtypes(
+ this, mSettingsValues.getPrefefinedAdditionalSubtypes());
// TODO: remove the following when it's not needed by updateCorrectionMode() any more
mInputAttributes = new InputAttributes(null, false /* isFullscreenMode */);
diff --git a/java/src/com/android/inputmethod/latin/SubtypeUtils.java b/java/src/com/android/inputmethod/latin/SubtypeUtils.java
index 4d0f1c2..a361027 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeUtils.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeUtils.java
@@ -146,4 +146,14 @@
throw new RuntimeException("Can't find subtype for locale " + localeString
+ " and keyboard layout " + keyoardLayoutSet);
}
+
+ public static void setAditionalInputMethodSubtypes(Context context,
+ InputMethodSubtype[] subtypes) {
+ final InputMethodManagerCompatWrapper imm = InputMethodManagerCompatWrapper.getInstance();
+ if (imm == null) {
+ throw new RuntimeException("Input method manager not found");
+ }
+ final String imiId = getInputMethodId(context.getPackageName());
+ imm.setAdditionalInputMethodSubtypes(imiId, subtypes);
+ }
}