aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r--java/src/com/android/inputmethod/latin/SettingsValues.java12
-rw-r--r--java/src/com/android/inputmethod/latin/Utils.java120
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java4
3 files changed, 10 insertions, 126 deletions
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index 5f9cb8df6..8e2f605c4 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -25,7 +25,7 @@ import android.view.inputmethod.EditorInfo;
import com.android.inputmethod.compat.InputTypeCompatUtils;
import com.android.inputmethod.compat.VibratorCompatWrapper;
-import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
+import com.android.inputmethod.keyboard.internal.KeySpecParser;
import java.util.Arrays;
import java.util.Locale;
@@ -100,7 +100,7 @@ public class SettingsValues {
}
}
}
- final String[] suggestPuncsSpec = Utils.parseCsvString(
+ final String[] suggestPuncsSpec = KeySpecParser.parseCsvString(
res.getString(R.string.suggested_punctuations), res, R.string.english_ime_name);
mSuggestPuncs = createSuggestPuncs(suggestPuncsSpec);
mSuggestPuncList = createSuggestPuncList(suggestPuncsSpec);
@@ -158,7 +158,7 @@ public class SettingsValues {
final StringBuilder sb = new StringBuilder();
if (puncs != null) {
for (final String puncSpec : puncs) {
- sb.append(MoreKeySpecParser.getLabel(puncSpec));
+ sb.append(KeySpecParser.getLabel(puncSpec));
}
}
return sb.toString();
@@ -168,7 +168,7 @@ public class SettingsValues {
final SuggestedWords.Builder builder = new SuggestedWords.Builder();
if (puncs != null) {
for (final String puncSpec : puncs) {
- builder.addWord(MoreKeySpecParser.getLabel(puncSpec));
+ builder.addWord(KeySpecParser.getLabel(puncSpec));
}
}
return builder.setIsPunctuationSuggestions().build();
@@ -178,11 +178,11 @@ public class SettingsValues {
final SuggestedWords.Builder builder = new SuggestedWords.Builder();
if (puncs != null) {
for (final String puncSpec : puncs) {
- final String outputText = MoreKeySpecParser.getOutputText(puncSpec);
+ final String outputText = KeySpecParser.getOutputText(puncSpec);
if (outputText != null) {
builder.addWord(outputText);
} else {
- builder.addWord(MoreKeySpecParser.getLabel(puncSpec));
+ builder.addWord(KeySpecParser.getLabel(puncSpec));
}
}
}
diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java
index d1b808fc8..3975dddeb 100644
--- a/java/src/com/android/inputmethod/latin/Utils.java
+++ b/java/src/com/android/inputmethod/latin/Utils.java
@@ -62,12 +62,6 @@ public class Utils {
private static boolean DBG = LatinImeLogger.sDBG;
private static boolean DBG_EDIT_DISTANCE = false;
- // Constants for resource name parsing.
- public static final char ESCAPE_CHAR = '\\';
- public static final char PREFIX_AT = '@';
- public static final char SUFFIX_SLASH = '/';
- private static final String PREFIX_STRING = PREFIX_AT + "string";
-
private Utils() {
// Intentional empty constructor for utility class.
}
@@ -800,116 +794,8 @@ public class Utils {
}
}
- public static int getResourceId(Resources res, String name, int packageNameResId) {
- String packageName = res.getResourcePackageName(packageNameResId);
- int resId = res.getIdentifier(name, null, packageName);
- if (resId == 0) {
- throw new RuntimeException("Unknown resource: " + name);
- }
- return resId;
- }
-
- public static String resolveStringResource(String text, Resources res, int packageNameResId) {
- final int size = text.length();
- if (size < PREFIX_STRING.length()) {
- return text;
- }
-
- StringBuilder sb = null;
- for (int pos = 0; pos < size; pos++) {
- final char c = text.charAt(pos);
- if (c == PREFIX_AT && text.startsWith(PREFIX_STRING, pos)) {
- if (sb == null) {
- sb = new StringBuilder(text.substring(0, pos));
- }
- final int end = Utils.searchResourceNameEnd(text, pos + PREFIX_STRING.length());
- final String resName = text.substring(pos + 1, end);
- final int resId = getResourceId(res, resName, packageNameResId);
- sb.append(res.getString(resId));
- pos = end - 1;
- } else if (c == ESCAPE_CHAR) {
- pos++;
- if (sb != null) {
- sb.append(c);
- if (pos < size) {
- sb.append(text.charAt(pos));
- }
- }
- } else if (sb != null) {
- sb.append(c);
- }
- }
- return (sb == null) ? text : sb.toString();
- }
-
- private static int searchResourceNameEnd(String text, int start) {
- final int size = text.length();
- if (start >= size || text.charAt(start) != SUFFIX_SLASH) {
- throw new RuntimeException("Resource name not specified");
- }
- for (int pos = start + 1; pos < size; pos++) {
- final char c = text.charAt(pos);
- // String resource name should be consisted of [a-z_0-9].
- if ((c >= 'a' && c <= 'z') || c == '_' || (c >= '0' && c <= '9')) {
- continue;
- }
- return pos;
- }
- return size;
- }
-
- public static String[] parseCsvString(String rawText, Resources res, int packageNameResId) {
- final String text = 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 == 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()]);
- }
+ public static int codePointCount(String text) {
+ if (TextUtils.isEmpty(text)) return 0;
+ return text.codePointCount(0, text.length());
}
}
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 230c2916b..bd244b913 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -16,8 +16,6 @@
package com.android.inputmethod.latin;
-import android.text.TextUtils;
-
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.KeyDetector;
import com.android.inputmethod.keyboard.Keyboard;
@@ -33,7 +31,7 @@ public class WordComposer {
public static final int NOT_A_CODE = KeyDetector.NOT_A_CODE;
public static final int NOT_A_COORDINATE = -1;
- final int N = BinaryDictionary.MAX_WORD_LENGTH;
+ final static int N = BinaryDictionary.MAX_WORD_LENGTH;
private ArrayList<int[]> mCodes;
private int[] mXCoordinates;