diff options
author | 2013-05-10 09:49:07 +0000 | |
---|---|---|
committer | 2013-05-10 09:49:07 +0000 | |
commit | 565ced4546420e9e17c7747f9e207ca6773598e3 (patch) | |
tree | cbd161484bacf71241c66f6a8238e84ebb416311 /java/src | |
parent | 4705c0fa7ca9527f6a3d7cb47542de734a56337d (diff) | |
parent | 6d3d2ae0647792c60728b916e25321e93f6f971f (diff) | |
download | latinime-565ced4546420e9e17c7747f9e207ca6773598e3.tar.gz latinime-565ced4546420e9e17c7747f9e207ca6773598e3.tar.xz latinime-565ced4546420e9e17c7747f9e207ca6773598e3.zip |
Merge "Refactor StringUtils.findPrefixedString to findValueOfKey"
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ResourceUtils.java | 14 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/StringUtils.java | 21 |
2 files changed, 21 insertions, 14 deletions
diff --git a/java/src/com/android/inputmethod/latin/ResourceUtils.java b/java/src/com/android/inputmethod/latin/ResourceUtils.java index b74b979b5..f0bfe75fe 100644 --- a/java/src/com/android/inputmethod/latin/ResourceUtils.java +++ b/java/src/com/android/inputmethod/latin/ResourceUtils.java @@ -35,8 +35,7 @@ public final class ResourceUtils { // This utility class is not publicly instantiable. } - private static final String DEFAULT_PREFIX = "DEFAULT,"; - private static final String HARDWARE_PREFIX = Build.HARDWARE + ","; + private static final String DEFAULT_KEY = "DEFAULT"; private static final HashMap<String, String> sDeviceOverrideValueMap = CollectionUtils.newHashMap(); @@ -48,28 +47,29 @@ public final class ResourceUtils { } final String[] overrideArray = res.getStringArray(overrideResId); - final String overrideValue = StringUtils.findPrefixedString(HARDWARE_PREFIX, overrideArray); + final String hardwareKey = "HARDWARE=" + Build.HARDWARE; + final String overrideValue = StringUtils.findValueOfKey(hardwareKey, overrideArray); // The overrideValue might be an empty string. if (overrideValue != null) { if (DEBUG) { Log.d(TAG, "Find override value:" + " resource="+ res.getResourceEntryName(overrideResId) - + " Build.HARDWARE=" + Build.HARDWARE + " override=" + overrideValue); + + " " + hardwareKey + " override=" + overrideValue); } sDeviceOverrideValueMap.put(key, overrideValue); return overrideValue; } - final String defaultValue = StringUtils.findPrefixedString(DEFAULT_PREFIX, overrideArray); + final String defaultValue = StringUtils.findValueOfKey(DEFAULT_KEY, overrideArray); // The defaultValue might be an empty string. if (defaultValue == null) { Log.w(TAG, "Couldn't find override value nor default value:" + " resource="+ res.getResourceEntryName(overrideResId) - + " Build.HARDWARE=" + Build.HARDWARE); + + " " + hardwareKey); } else if (DEBUG) { Log.d(TAG, "Found default value:" + " resource="+ res.getResourceEntryName(overrideResId) - + " Build.HARDWARE=" + Build.HARDWARE + " default=" + defaultValue); + + " " + hardwareKey + " " + DEFAULT_KEY + "=" + defaultValue); } sDeviceOverrideValueMap.put(key, defaultValue); return defaultValue; diff --git a/java/src/com/android/inputmethod/latin/StringUtils.java b/java/src/com/android/inputmethod/latin/StringUtils.java index d5ee58a63..5ff101f7a 100644 --- a/java/src/com/android/inputmethod/latin/StringUtils.java +++ b/java/src/com/android/inputmethod/latin/StringUtils.java @@ -65,17 +65,24 @@ public final class StringUtils { } /** - * Find a string that start with specified prefix from an array. + * Find a value that has a specified key from an array of key-comma-value. * - * @param prefix a prefix string to find. - * @param array an string array to be searched. - * @return the rest part of the string that starts with the prefix. + * @param key a key string to find. + * @param array an array of key-comma-value string to be searched. + * @return the value part of the first string that has a specified key. * Returns null if it couldn't be found. */ - public static String findPrefixedString(final String prefix, final String[] array) { + public static String findValueOfKey(final String key, final String[] array) { + if (array == null) { + return null; + } for (final String element : array) { - if (element.startsWith(prefix)) { - return element.substring(prefix.length()); + final int posComma = element.indexOf(','); + if (posComma < 0) { + throw new RuntimeException("Element has no comma: " + element); + } + if (element.substring(0, posComma).equals(key)) { + return element.substring(posComma + 1); } } return null; |