aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorMartin Paraskevov <paraskevov@google.com>2015-04-16 23:58:23 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-16 23:58:23 +0000
commitf93aea6545f7e649492d6da2bca1a7ddff5c9f88 (patch)
tree5062cfa7dadaed65dfedac70f9607603ebdfd67f /java/src
parenta527566fd250957cf8a26bb42bf217b65af9d744 (diff)
parentc155f7f5fd4aeefcce69a06755a0b3c1360277b8 (diff)
downloadlatinime-f93aea6545f7e649492d6da2bca1a7ddff5c9f88.tar.gz
latinime-f93aea6545f7e649492d6da2bca1a7ddff5c9f88.tar.xz
latinime-f93aea6545f7e649492d6da2bca1a7ddff5c9f88.zip
am c155f7f5: Merge "Strip quotes from begining/end of a word before checking its validity."
* commit 'c155f7f5fd4aeefcce69a06755a0b3c1360277b8': Strip quotes from begining/end of a word before checking its validity.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index fd5c54c09..d6de94532 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -58,6 +58,9 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
protected final SuggestionsCache mSuggestionsCache = new SuggestionsCache();
private final ContentObserver mObserver;
+ private static final String quotesRegexp =
+ "\\u0022|\\u0027|\\u0060|\\u00B4|\\u2018|\\u2018|\\u201C|\\u201D";
+
private static final class SuggestionsParams {
public final String[] mSuggestions;
public final int mFlags;
@@ -224,12 +227,16 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
protected SuggestionsInfo onGetSuggestionsInternal(
final TextInfo textInfo, final NgramContext ngramContext, final int suggestionsLimit) {
try {
- final String inText = textInfo.getText();
+ final String text = textInfo.getText().
+ replaceAll(AndroidSpellCheckerService.APOSTROPHE,
+ AndroidSpellCheckerService.SINGLE_QUOTE).
+ replaceAll("^" + quotesRegexp, "").
+ replaceAll(quotesRegexp + "$", "");
final SuggestionsParams cachedSuggestionsParams =
- mSuggestionsCache.getSuggestionsFromCache(inText, ngramContext);
+ mSuggestionsCache.getSuggestionsFromCache(text, ngramContext);
if (cachedSuggestionsParams != null) {
- Log.d(TAG, "onGetSuggestionsInternal() : Cache hit for [" + inText + "]");
+ Log.d(TAG, "onGetSuggestionsInternal() : Cache hit for [" + text + "]");
return new SuggestionsInfo(
cachedSuggestionsParams.mFlags, cachedSuggestionsParams.mSuggestions);
}
@@ -241,10 +248,10 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
}
// Handle special patterns like email, URI, telephone number.
- final int checkability = getCheckabilityInScript(inText, mScript);
+ final int checkability = getCheckabilityInScript(text, mScript);
if (CHECKABILITY_CHECKABLE != checkability) {
if (CHECKABILITY_CONTAINS_PERIOD == checkability) {
- final String[] splitText = inText.split(Constants.REGEXP_PERIOD);
+ final String[] splitText = text.split(Constants.REGEXP_PERIOD);
boolean allWordsAreValid = true;
for (final String word : splitText) {
if (!mService.isValidWord(mLocale, word)) {
@@ -259,15 +266,13 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
TextUtils.join(Constants.STRING_SPACE, splitText) });
}
}
- return mService.isValidWord(mLocale, inText) ?
+ return mService.isValidWord(mLocale, text) ?
AndroidSpellCheckerService.getInDictEmptySuggestions() :
AndroidSpellCheckerService.getNotInDictEmptySuggestions(
CHECKABILITY_CONTAINS_PERIOD == checkability /* reportAsTypo */);
}
// Handle normal words.
- final String text = inText.replaceAll(
- AndroidSpellCheckerService.APOSTROPHE, AndroidSpellCheckerService.SINGLE_QUOTE);
final int capitalizeType = StringUtils.getCapitalizationType(text);
if (isInDictForAnyCapitalization(text, capitalizeType)) {