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);
+    }
 }