From eaa10f44a4a0108a90803b1b28238842d3fb5add Mon Sep 17 00:00:00 2001 From: satok Date: Tue, 17 May 2011 17:34:17 +0900 Subject: Show full display names in the popup of the spacebar language swicher - Multiply the speed of the slide Bug: 4427222 Change-Id: Ifd2de9843191296f0f311440ea7b8ab075c67d8d --- java/src/com/android/inputmethod/latin/Utils.java | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'java/src/com/android/inputmethod/latin/Utils.java') 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 sLocaleCache = new HashMap(); + + 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; + } + } } -- cgit v1.2.3-83-g751a