aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-07-10 18:35:19 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-07-10 18:35:19 -0700
commit8a96175936e6f4cc02e4fc3cd3ae6759f0b1f86e (patch)
tree9f4f6ff804f1966b3d75a995a3c2518e6def5c69 /java/src
parent949d2ae5788977c5e87e35e1bd1770f54ac88f5b (diff)
parent86ade47236f8aac94b7e4378c034e32805d6755b (diff)
downloadlatinime-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.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() {