diff options
author | 2012-02-01 18:14:32 +0900 | |
---|---|---|
committer | 2012-02-01 19:33:26 +0900 | |
commit | ff858c7ff5e747c17ff6d9d1908e700ad30ded85 (patch) | |
tree | 75a001822ebd69e251574c48a08a1df08872dd43 /java/src/com/android/inputmethod/latin/SettingsValues.java | |
parent | a5c96f376ad57e78a88942bb618e067054ed818a (diff) | |
download | latinime-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.java | 45 |
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(); |