aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-07-04 18:22:40 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-07-05 17:40:13 +0900
commitbffa6cc1b2730776b2d680ba614bd7bc5cf0b01f (patch)
tree536c3c43bca2d9bf10c26ee0227fa7e845689e40 /java/src
parent7f7947c97b141cbb338c5164e9e19d1ac9ff3d1c (diff)
downloadlatinime-bffa6cc1b2730776b2d680ba614bd7bc5cf0b01f.tar.gz
latinime-bffa6cc1b2730776b2d680ba614bd7bc5cf0b01f.tar.xz
latinime-bffa6cc1b2730776b2d680ba614bd7bc5cf0b01f.zip
Initialize SubtypeLocale from Settings (DO NOT MERGE)
Bug: 6781106 Change-Id: Ic1b2b8363486820eabaa415ab3812c0e8565b7bb
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/Settings.java4
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeLocale.java8
2 files changed, 11 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 152d66851..4bb21720b 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -116,6 +116,10 @@ public class Settings extends InputMethodSettingsFragment
final Resources res = getResources();
final Context context = getActivity();
+ // When we are called from the Settings application but we are not already running, the
+ // {@link SubtypeLocale} class may not have been initialized. It is safe to call
+ // {@link SubtypeLocale#init(Context)} multiple times.
+ SubtypeLocale.init(context);
mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE);
mShowCorrectionSuggestionsPreference =
(ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING);
diff --git a/java/src/com/android/inputmethod/latin/SubtypeLocale.java b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
index acc17ef3f..21c9c0d1e 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeLocale.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
@@ -41,6 +41,7 @@ public class SubtypeLocale {
public static final String QWERTY = "qwerty";
public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic;
+ private static boolean sInitialized = false;
private static String[] sPredefinedKeyboardLayoutSet;
// Keyboard layout to its display name map.
private static final HashMap<String, String> sKeyboardLayoutToDisplayNameMap =
@@ -69,7 +70,10 @@ public class SubtypeLocale {
// Intentional empty constructor for utility class.
}
- public static void init(Context context) {
+ // Note that this initialization method can be called multiple times.
+ public static synchronized void init(Context context) {
+ if (sInitialized) return;
+
final Resources res = context.getResources();
final String[] predefinedLayoutSet = res.getStringArray(R.array.predefined_layouts);
@@ -109,6 +113,8 @@ public class SubtypeLocale {
final String keyboardLayoutSet = keyboardLayoutSetMap[i + 1];
sLocaleAndExtraValueToKeyboardLayoutSetMap.put(key, keyboardLayoutSet);
}
+
+ sInitialized = true;
}
public static String[] getPredefinedKeyboardLayoutSet() {