summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-02-01 18:14:32 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-02-01 19:33:26 +0900
commitff858c7ff5e747c17ff6d9d1908e700ad30ded85 (patch)
tree75a001822ebd69e251574c48a08a1df08872dd43 /java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
parenta5c96f376ad57e78a88942bb618e067054ed818a (diff)
Use MoreKeySpecParser to parse puctuations strip resources
This change also * Doesn't use Key.getRtlParenthesisCode to get correct parentheses code in RTL context. Intead uses the outputText feature of moreKeys specification. * Move CVS string parser from KeyStyles to Utils. Bug: 5948247 Change-Id: I45752c7d01b4f7d3f3da900b110a2185b336a1f0
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java61
1 files changed, 2 insertions, 59 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index 1450192b2..25a2c23c4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -16,7 +16,6 @@
package com.android.inputmethod.keyboard.internal;
-import android.content.res.Resources;
import android.content.res.TypedArray;
import android.util.Log;
@@ -28,7 +27,6 @@ import com.android.inputmethod.latin.XmlParseUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.util.ArrayList;
import java.util.HashMap;
public class KeyStyles {
@@ -74,63 +72,8 @@ public class KeyStyles {
protected static String[] parseStringArray(TypedArray a, int index) {
if (!a.hasValue(index))
return null;
- return parseCsvString(a.getString(index), a.getResources(), R.string.english_ime_name);
- }
- }
-
- /* package for test */
- static String[] parseCsvString(String rawText, Resources res, int packageNameResId) {
- final String text = Utils.resolveStringResource(rawText, res, packageNameResId);
- final int size = text.length();
- if (size == 0) {
- return null;
- }
- if (size == 1) {
- return new String[] { text };
- }
-
- final StringBuilder sb = new StringBuilder();
- ArrayList<String> list = null;
- int start = 0;
- for (int pos = 0; pos < size; pos++) {
- final char c = text.charAt(pos);
- if (c == ',') {
- if (list == null) {
- list = new ArrayList<String>();
- }
- if (sb.length() == 0) {
- list.add(text.substring(start, pos));
- } else {
- list.add(sb.toString());
- sb.setLength(0);
- }
- start = pos + 1;
- continue;
- } else if (c == Utils.ESCAPE_CHAR) {
- if (start == pos) {
- // Skip escape character at the beginning of the value.
- start++;
- pos++;
- } else {
- if (start < pos && sb.length() == 0) {
- sb.append(text.subSequence(start, pos));
- }
- pos++;
- if (pos < size) {
- sb.append(text.charAt(pos));
- }
- }
- } else if (sb.length() > 0) {
- sb.append(c);
- }
- }
- if (list == null) {
- return new String[] {
- sb.length() > 0 ? sb.toString() : text.substring(start)
- };
- } else {
- list.add(sb.length() > 0 ? sb.toString() : text.substring(start));
- return list.toArray(new String[list.size()]);
+ return Utils.parseCsvString(
+ a.getString(index), a.getResources(), R.string.english_ime_name);
}
}