diff options
author | 2011-05-18 02:34:37 -0700 | |
---|---|---|
committer | 2011-05-18 02:34:37 -0700 | |
commit | 0b47f3af83648293afb836250756cc14dffcde4b (patch) | |
tree | d5e8eaac628c435d36f23da5a8df14ce327bc479 /java/src/com/android/inputmethod/latin/Utils.java | |
parent | a205d23ffdec7e89933c5052ddf325af344f4af0 (diff) | |
parent | eaa10f44a4a0108a90803b1b28238842d3fb5add (diff) | |
download | latinime-0b47f3af83648293afb836250756cc14dffcde4b.tar.gz latinime-0b47f3af83648293afb836250756cc14dffcde4b.tar.xz latinime-0b47f3af83648293afb836250756cc14dffcde4b.zip |
Merge "Show full display names in the popup of the spacebar language swicher"
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Utils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/Utils.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java index d165de32d..5207f38ad 100644 --- a/java/src/com/android/inputmethod/latin/Utils.java +++ b/java/src/com/android/inputmethod/latin/Utils.java @@ -44,6 +44,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashMap; import java.util.Locale; public class Utils { @@ -662,4 +663,28 @@ public class Utils { res.updateConfiguration(conf, res.getDisplayMetrics()); return saveLocale; } + + private static final HashMap<String, Locale> sLocaleCache = new HashMap<String, Locale>(); + + public static Locale constructLocaleFromString(String localeStr) { + if (localeStr == null) + return null; + synchronized (sLocaleCache) { + if (sLocaleCache.containsKey(localeStr)) + return sLocaleCache.get(localeStr); + Locale retval = null; + String[] localeParams = localeStr.split("_", 3); + if (localeParams.length == 1) { + retval = new Locale(localeParams[0]); + } else if (localeParams.length == 2) { + retval = new Locale(localeParams[0], localeParams[1]); + } else if (localeParams.length == 3) { + retval = new Locale(localeParams[0], localeParams[1], localeParams[2]); + } + if (retval != null) { + sLocaleCache.put(localeStr, retval); + } + return retval; + } + } } |