From 69bcc15cb386f0a2b56aed8a58ddb1468974c92d Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Tue, 17 Apr 2012 22:48:00 +0900
Subject: [PATCH] Add SubtypeUtils.setAditionalInputMethodSubtypes method

Change-Id: Ia3043346ed87297e01d505980555fdf29ce4f96f
---
 java/src/com/android/inputmethod/latin/LatinIME.java   |  5 ++---
 .../com/android/inputmethod/latin/SubtypeUtils.java    | 10 ++++++++++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b30d1e35cd..ddf21f7498 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -442,9 +442,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
 
         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 4d0f1c2628..a361027afd 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeUtils.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeUtils.java
@@ -146,4 +146,14 @@ public class SubtypeUtils {
         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);
+    }
 }
-- 
GitLab