aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-02-03 10:51:34 +0900
committerJean Chalard <jchalard@google.com>2012-02-03 11:15:46 +0900
commit9242a2bcf8a6b07bb045a8356711bed1493c251e (patch)
tree9c7cebb930034ce21b7402f2fda3df8ddb7bd797 /java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
parentfbd83a87123494a9a02364fa6688734155728256 (diff)
downloadlatinime-9242a2bcf8a6b07bb045a8356711bed1493c251e.tar.gz
latinime-9242a2bcf8a6b07bb045a8356711bed1493c251e.tar.xz
latinime-9242a2bcf8a6b07bb045a8356711bed1493c251e.zip
Fix string iterations in a couple places.
Seems I didn't get how to iterate on a String correctly >.> Talk about a big bug. Anyway, I think it's working now. Bug: 5955228 Change-Id: I988c900cf2a16c44b9505cfd4f77c7cda7e592f0
Diffstat (limited to 'java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java')
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 88ac043ed..8ac82ee5b 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -431,9 +431,9 @@ public class AndroidSpellCheckerService extends SpellCheckerService
// If the first char is not uppercase, then the word is either all lower case,
// and in either case we return CAPITALIZE_NONE.
if (!Character.isUpperCase(text.codePointAt(0))) return CAPITALIZE_NONE;
- final int len = text.codePointCount(0, text.length());
+ final int len = text.length();
int capsCount = 1;
- for (int i = 1; i < len; ++i) {
+ for (int i = 1; i < len; i = text.offsetByCodePoints(i, 1)) {
if (1 != capsCount && i != capsCount) break;
if (Character.isUpperCase(text.codePointAt(i))) ++capsCount;
}
@@ -522,13 +522,12 @@ public class AndroidSpellCheckerService extends SpellCheckerService
// Filter contents
final int length = text.length();
int letterCount = 0;
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; i = text.offsetByCodePoints(i, 1)) {
final int codePoint = text.codePointAt(i);
// Any word containing a '@' is probably an e-mail address
// Any word containing a '/' is probably either an ad-hoc combination of two
// words or a URI - in either case we don't want to spell check that
- if ('@' == codePoint
- || '/' == codePoint) return true;
+ if ('@' == codePoint || '/' == codePoint) return true;
if (isLetterCheckableByLanguage(codePoint, script)) ++letterCount;
}
// Guestimate heuristic: perform spell checking if at least 3/4 of the characters
@@ -570,7 +569,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
suggestionsLimit);
final WordComposer composer = new WordComposer();
final int length = text.length();
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; i = text.offsetByCodePoints(i, 1)) {
final int character = text.codePointAt(i);
final int proximityIndex =
SpellCheckerProximityInfo.getIndexOfCodeForScript(character, mScript);