diff options
author | 2012-03-21 15:33:55 +0900 | |
---|---|---|
committer | 2012-03-21 18:20:18 +0900 | |
commit | 624f1bab39357eb716dfc7ec6b723da3f926f5a2 (patch) | |
tree | 573e7fd8f300948d47c733f8e714a366940607ef /java/src/com/android/inputmethod/latin/Utils.java | |
parent | 1fe943aabdf6c9a40c634bf4a5450cbed4f6c136 (diff) | |
download | latinime-624f1bab39357eb716dfc7ec6b723da3f926f5a2.tar.gz latinime-624f1bab39357eb716dfc7ec6b723da3f926f5a2.tar.xz latinime-624f1bab39357eb716dfc7ec6b723da3f926f5a2.zip |
Refactor to memorize device dependent override parameters
Change-Id: I79482a8ef3846525669979a30dec183ea18138b5
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Utils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/Utils.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java index a7de47c58..a914ff76e 100644 --- a/java/src/com/android/inputmethod/latin/Utils.java +++ b/java/src/com/android/inputmethod/latin/Utils.java @@ -19,9 +19,11 @@ package com.android.inputmethod.latin; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.inputmethodservice.InputMethodService; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; @@ -43,6 +45,7 @@ import java.io.PrintWriter; import java.nio.channels.FileChannel; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashMap; public class Utils { private Utils() { @@ -465,4 +468,23 @@ public class Utils { if (TextUtils.isEmpty(info)) return null; return info; } + + private static final String HARDWARE_PREFIX = Build.HARDWARE + ","; + private static final HashMap<Integer, String> sDeviceOverrideValueMap = + new HashMap<Integer, String>(); + + public static String getDeviceOverrideValue(Resources res, int overrideResId, String defValue) { + final Integer key = overrideResId; + if (!sDeviceOverrideValueMap.containsKey(key)) { + String overrideValue = defValue; + for (final String element : res.getStringArray(overrideResId)) { + if (element.startsWith(HARDWARE_PREFIX)) { + overrideValue = element.substring(HARDWARE_PREFIX.length()); + break; + } + } + sDeviceOverrideValueMap.put(key, overrideValue); + } + return sDeviceOverrideValueMap.get(key); + } } |