aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/utils
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-05-16 07:50:53 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-16 07:50:53 +0000
commit08e9a7082e2c2724f689c88a78226e1f6593e544 (patch)
tree8e366e4187c6fbc7d887b64793cc35463a458982 /java/src/com/android/inputmethod/latin/utils
parentda1590e32c4a8c1967be5aabaa04ecd92b2e4781 (diff)
parentf1b3518d7181a56d4b50f32e21438003edfd4355 (diff)
downloadlatinime-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.java7
-rw-r--r--java/src/com/android/inputmethod/latin/utils/StringUtils.java9
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) {