diff options
author | 2014-05-16 07:50:53 +0000 | |
---|---|---|
committer | 2014-05-16 07:50:53 +0000 | |
commit | 08e9a7082e2c2724f689c88a78226e1f6593e544 (patch) | |
tree | 8e366e4187c6fbc7d887b64793cc35463a458982 /java/src/com/android/inputmethod/latin/utils | |
parent | da1590e32c4a8c1967be5aabaa04ecd92b2e4781 (diff) | |
parent | f1b3518d7181a56d4b50f32e21438003edfd4355 (diff) | |
download | latinime-08e9a7082e2c2724f689c88a78226e1f6593e544.tar.gz latinime-08e9a7082e2c2724f689c88a78226e1f6593e544.tar.xz latinime-08e9a7082e2c2724f689c88a78226e1f6593e544.zip |
am f1b3518d: Merge "Fix: StringIndexOutOfBoundsException."
* commit 'f1b3518d7181a56d4b50f32e21438003edfd4355':
Fix: StringIndexOutOfBoundsException.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/DistracterFilter.java | 7 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/StringUtils.java | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java index 0a0379982..dc3e9bf71 100644 --- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java +++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java @@ -86,9 +86,10 @@ public class DistracterFilter { coordinates = mKeyboard.getCoordinates(codePoints); composer.setComposingWord(codePoints, coordinates, prevWord); - final int trailingSingleQuotesCount = composer.trailingSingleQuotesCount(); - final String consideredWord = trailingSingleQuotesCount > 0 ? testedWord.substring(0, - testedWord.length() - trailingSingleQuotesCount) : testedWord; + final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(testedWord); + final String consideredWord = trailingSingleQuotesCount > 0 ? + testedWord.substring(0, testedWord.length() - trailingSingleQuotesCount) : + testedWord; final AsyncResultHolder<Boolean> holder = new AsyncResultHolder<Boolean>(); final OnGetSuggestedWordsCallback callback = new OnGetSuggestedWordsCallback() { @Override diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java index 374badc19..73ac9a573 100644 --- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/StringUtils.java @@ -538,6 +538,15 @@ public final class StringUtils { ? casedText.codePointAt(0) : CODE_UNSPECIFIED; } + public static int getTrailingSingleQuotesCount(final CharSequence charSequence) { + final int lastIndex = charSequence.length() - 1; + int i = lastIndex; + while (i >= 0 && charSequence.charAt(i) == Constants.CODE_SINGLE_QUOTE) { + --i; + } + return lastIndex - i; + } + @UsedForTesting public static class Stringizer<E> { public String stringize(final E element) { |