diff options
author | 2012-07-10 18:35:19 -0700 | |
---|---|---|
committer | 2012-07-10 18:35:19 -0700 | |
commit | 8a96175936e6f4cc02e4fc3cd3ae6759f0b1f86e (patch) | |
tree | 9f4f6ff804f1966b3d75a995a3c2518e6def5c69 /java/src | |
parent | 949d2ae5788977c5e87e35e1bd1770f54ac88f5b (diff) | |
parent | 86ade47236f8aac94b7e4378c034e32805d6755b (diff) | |
download | latinime-8a96175936e6f4cc02e4fc3cd3ae6759f0b1f86e.tar.gz latinime-8a96175936e6f4cc02e4fc3cd3ae6759f0b1f86e.tar.xz latinime-8a96175936e6f4cc02e4fc3cd3ae6759f0b1f86e.zip |
am 86ade472: Merge "Initialize SubtypeLocale from Settings (DO NOT MERGE)" into jb-dev
* commit '86ade47236f8aac94b7e4378c034e32805d6755b':
Initialize SubtypeLocale from Settings (DO NOT MERGE)
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/Settings.java | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SubtypeLocale.java | 8 |
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() { |