diff options
author | 2014-01-20 15:41:50 +0900 | |
---|---|---|
committer | 2014-01-20 18:33:45 +0900 | |
commit | 837cdd738b7ddbeac04b15230f01e44d247bd50a (patch) | |
tree | 19f251f5ad15cd9b09b0941fd9d5ee76fad1e064 /java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java | |
parent | 3f3b0af5b759ef87fbc42935a53b6827c7237f05 (diff) | |
download | latinime-837cdd738b7ddbeac04b15230f01e44d247bd50a.tar.gz latinime-837cdd738b7ddbeac04b15230f01e44d247bd50a.tar.xz latinime-837cdd738b7ddbeac04b15230f01e44d247bd50a.zip |
Add SpacingAndPunctuationsTests
Change-Id: I78d488ad84a11af809ee1f8d3d2fa01a89fbfa28
Diffstat (limited to 'java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java index 29bd3e7b3..1a6f622bc 100644 --- a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java +++ b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java @@ -32,9 +32,9 @@ import java.util.Arrays; import java.util.Locale; public final class SpacingAndPunctuations { - private final int[] mSymbolsPrecededBySpace; - private final int[] mSymbolsFollowedBySpace; - private final int[] mWordConnectors; + private final int[] mSortedSymbolsPrecededBySpace; + private final int[] mSortedSymbolsFollowedBySpace; + private final int[] mSortedWordConnectors; public final SuggestedWords mSuggestPuncList; public final String mWordSeparators; private final int mSentenceSeparator; @@ -44,15 +44,15 @@ public final class SpacingAndPunctuations { public final boolean mUsesGermanRules; public SpacingAndPunctuations(final Resources res) { - mSymbolsPrecededBySpace = - StringUtils.toCodePointArray(res.getString(R.string.symbols_preceded_by_space)); - Arrays.sort(mSymbolsPrecededBySpace); - mSymbolsFollowedBySpace = - StringUtils.toCodePointArray(res.getString(R.string.symbols_followed_by_space)); - Arrays.sort(mSymbolsFollowedBySpace); - mWordConnectors = - StringUtils.toCodePointArray(res.getString(R.string.symbols_word_connectors)); - Arrays.sort(mWordConnectors); + // To be able to binary search the code point. See {@link #isUsuallyPrecededBySpace(int)}. + mSortedSymbolsPrecededBySpace = StringUtils.toSortedCodePointArray( + res.getString(R.string.symbols_preceded_by_space)); + // To be able to binary search the code point. See {@link #isUsuallyFollowedBySpace(int)}. + mSortedSymbolsFollowedBySpace = StringUtils.toSortedCodePointArray( + res.getString(R.string.symbols_followed_by_space)); + // To be able to binary search the code point. See {@link #isWordConnector(int)}. + mSortedWordConnectors = StringUtils.toSortedCodePointArray( + res.getString(R.string.symbols_word_connectors)); final String[] suggestPuncsSpec = KeySpecParser.splitKeySpecs(res.getString( R.string.suggested_punctuations)); mSuggestPuncList = createSuggestPuncList(suggestPuncsSpec); @@ -74,6 +74,7 @@ public final class SpacingAndPunctuations { if (puncs != null) { for (final String puncSpec : puncs) { // TODO: Stop using KeySpceParser.getLabel(). + // TODO: Punctuation suggestions should honor RTL languages. puncList.add(new SuggestedWordInfo(KeySpecParser.getLabel(puncSpec), SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_HARDCODED, Dictionary.DICTIONARY_HARDCODED, @@ -94,7 +95,7 @@ public final class SpacingAndPunctuations { } public boolean isWordConnector(final int code) { - return Arrays.binarySearch(mWordConnectors, code) >= 0; + return Arrays.binarySearch(mSortedWordConnectors, code) >= 0; } public boolean isWordCodePoint(final int code) { @@ -102,11 +103,11 @@ public final class SpacingAndPunctuations { } public boolean isUsuallyPrecededBySpace(final int code) { - return Arrays.binarySearch(mSymbolsPrecededBySpace, code) >= 0; + return Arrays.binarySearch(mSortedSymbolsPrecededBySpace, code) >= 0; } public boolean isUsuallyFollowedBySpace(final int code) { - return Arrays.binarySearch(mSymbolsFollowedBySpace, code) >= 0; + return Arrays.binarySearch(mSortedSymbolsFollowedBySpace, code) >= 0; } public boolean isSentenceSeparator(final int code) { |