aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/SettingsValues.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/latin/SettingsValues.java
parenta5c96f376ad57e78a88942bb618e067054ed818a (diff)
downloadlatinime-ff858c7ff5e747c17ff6d9d1908e700ad30ded85.tar.gz
latinime-ff858c7ff5e747c17ff6d9d1908e700ad30ded85.tar.xz
latinime-ff858c7ff5e747c17ff6d9d1908e700ad30ded85.zip
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/latin/SettingsValues.java')
-rw-r--r--java/src/com/android/inputmethod/latin/SettingsValues.java45
1 files changed, 37 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index e6ef3962e..5f9cb8df6 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -25,6 +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 java.util.Arrays;
import java.util.Locale;
@@ -36,8 +37,9 @@ public class SettingsValues {
public final int mDelayUpdateOldSuggestions;
public final String mMagicSpaceStrippers;
public final String mMagicSpaceSwappers;
- public final String mSuggestPuncs;
+ private final String mSuggestPuncs;
public final SuggestedWords mSuggestPuncList;
+ public final SuggestedWords mSuggestPuncOutputTextList;
private final String mSymbolsExcludedFromWordSeparators;
public final String mWordSeparators;
public final CharSequence mHintToSaveText;
@@ -98,9 +100,11 @@ public class SettingsValues {
}
}
}
- mSuggestPuncs = res.getString(R.string.suggested_punctuations);
- // TODO: it would be nice not to recreate this each time we change the configuration
- mSuggestPuncList = createSuggestPuncList(mSuggestPuncs);
+ final String[] suggestPuncsSpec = Utils.parseCsvString(
+ res.getString(R.string.suggested_punctuations), res, R.string.english_ime_name);
+ mSuggestPuncs = createSuggestPuncs(suggestPuncsSpec);
+ mSuggestPuncList = createSuggestPuncList(suggestPuncsSpec);
+ mSuggestPuncOutputTextList = createSuggestPuncOutputTextList(suggestPuncsSpec);
mSymbolsExcludedFromWordSeparators =
res.getString(R.string.symbols_excluded_from_word_separators);
mWordSeparators = createWordSeparators(mMagicSpaceStrippers, mMagicSpaceSwappers,
@@ -150,11 +154,36 @@ public class SettingsValues {
}
// Helper functions to create member values.
- private static SuggestedWords createSuggestPuncList(final String puncs) {
- SuggestedWords.Builder builder = new SuggestedWords.Builder();
+ private static String createSuggestPuncs(final String[] puncs) {
+ final StringBuilder sb = new StringBuilder();
if (puncs != null) {
- for (int i = 0; i < puncs.length(); i++) {
- builder.addWord(puncs.subSequence(i, i + 1));
+ for (final String puncSpec : puncs) {
+ sb.append(MoreKeySpecParser.getLabel(puncSpec));
+ }
+ }
+ return sb.toString();
+ }
+
+ private static SuggestedWords createSuggestPuncList(final String[] puncs) {
+ final SuggestedWords.Builder builder = new SuggestedWords.Builder();
+ if (puncs != null) {
+ for (final String puncSpec : puncs) {
+ builder.addWord(MoreKeySpecParser.getLabel(puncSpec));
+ }
+ }
+ return builder.setIsPunctuationSuggestions().build();
+ }
+
+ private static SuggestedWords createSuggestPuncOutputTextList(final String[] puncs) {
+ final SuggestedWords.Builder builder = new SuggestedWords.Builder();
+ if (puncs != null) {
+ for (final String puncSpec : puncs) {
+ final String outputText = MoreKeySpecParser.getOutputText(puncSpec);
+ if (outputText != null) {
+ builder.addWord(outputText);
+ } else {
+ builder.addWord(MoreKeySpecParser.getLabel(puncSpec));
+ }
}
}
return builder.setIsPunctuationSuggestions().build();