aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/Utils.java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2011-05-17 17:34:17 +0900
committersatok <satok@google.com>2011-05-18 18:15:50 +0900
commiteaa10f44a4a0108a90803b1b28238842d3fb5add (patch)
treede5c0914608c56788eb709a1f67173f55250d43a /java/src/com/android/inputmethod/latin/Utils.java
parentd2d21ce0beeadfbcc477fcae32694846cb89dfe1 (diff)
downloadlatinime-eaa10f44a4a0108a90803b1b28238842d3fb5add.tar.gz
latinime-eaa10f44a4a0108a90803b1b28238842d3fb5add.tar.xz
latinime-eaa10f44a4a0108a90803b1b28238842d3fb5add.zip
Show full display names in the popup of the spacebar language swicher
- Multiply the speed of the slide Bug: 4427222 Change-Id: Ifd2de9843191296f0f311440ea7b8ab075c67d8d
Diffstat (limited to '')
-rw-r--r--java/src/com/android/inputmethod/latin/Utils.java25
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;
+ }
+ }
}