aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-11-28 13:28:18 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-11-28 14:49:38 +0900
commit85e397cd1060f3878d9a55373b7409641175179a (patch)
tree9c34245de9563731d9ac6bb3ad2fbd7a38f6690e /java/src/com/android/inputmethod/latin/RichInputMethodManager.java
parentee71ecf5e2e6d6651782653f87106604fd965bdd (diff)
downloadlatinime-85e397cd1060f3878d9a55373b7409641175179a.tar.gz
latinime-85e397cd1060f3878d9a55373b7409641175179a.tar.xz
latinime-85e397cd1060f3878d9a55373b7409641175179a.zip
Set additional subtypes before getting current subtype
Bug: 7594188 Change-Id: I1977acb7189f8eb186b9b20a3e5b64b4aaabf191
Diffstat (limited to 'java/src/com/android/inputmethod/latin/RichInputMethodManager.java')
-rw-r--r--java/src/com/android/inputmethod/latin/RichInputMethodManager.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index 63dfd3250..af0d61cc7 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -19,6 +19,7 @@ package com.android.inputmethod.latin;
import static com.android.inputmethod.latin.Constants.Subtype.KEYBOARD_MODE;
import android.content.Context;
+import android.content.SharedPreferences;
import android.os.IBinder;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
@@ -49,19 +50,34 @@ public final class RichInputMethodManager {
return sInstance;
}
- public static void init(final Context context) {
- sInstance.initInternal(context);
+ public static void init(final Context context, final SharedPreferences prefs) {
+ sInstance.initInternal(context, prefs);
+ }
+
+ private boolean isInitialized() {
+ return mImmWrapper != null;
}
private void checkInitialized() {
- if (mImmWrapper == null) {
+ if (!isInitialized()) {
throw new RuntimeException(TAG + " is used before initialization");
}
}
- private void initInternal(final Context context) {
+ private void initInternal(final Context context, final SharedPreferences prefs) {
+ if (isInitialized()) {
+ return;
+ }
mImmWrapper = new InputMethodManagerCompatWrapper(context);
mInputMethodInfoOfThisIme = getInputMethodInfoOfThisIme(context);
+
+ // Initialize additional subtypes.
+ SubtypeLocale.init(context);
+ final String prefAdditionalSubtypes = SettingsValues.getPrefAdditionalSubtypes(
+ prefs, context.getResources());
+ final InputMethodSubtype[] additionalSubtypes =
+ AdditionalSubtype.createAdditionalSubtypesArray(prefAdditionalSubtypes);
+ setAdditionalInputMethodSubtypes(additionalSubtypes);
}
public InputMethodManager getInputMethodManager() {