aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2012-05-07 22:02:04 +0900
committersatok <satok@google.com>2012-05-07 22:21:55 +0900
commite58f3af8a7bf852c3b100de1bd85d95d13e0e15e (patch)
treef62f6c3b59b25e7e2fc497d09a6a28f25950661f /java
parent8950ce6c44706467bb386570ae236a2b8b983666 (diff)
downloadlatinime-e58f3af8a7bf852c3b100de1bd85d95d13e0e15e.tar.gz
latinime-e58f3af8a7bf852c3b100de1bd85d95d13e0e15e.tar.xz
latinime-e58f3af8a7bf852c3b100de1bd85d95d13e0e15e.zip
Treat apostrophe as single quote in spell checker
Bug: 6435348 Change-Id: Iaaac9042e7e6cb21a3f2243bc6e8e055cc24f74d
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java15
1 files changed, 9 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 aa25faef5..f41645283 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -90,6 +90,8 @@ public class AndroidSpellCheckerService extends SpellCheckerService
public static final int SCRIPT_LATIN = 0;
public static final int SCRIPT_CYRILLIC = 1;
+ private static final String SINGLE_QUOTE = "\u0027";
+ private static final String APOSTROPHE = "\u2019";
private static final TreeMap<String, Integer> mLanguageToScript;
static {
// List of the supported languages and their associated script. We won't check
@@ -574,24 +576,24 @@ public class AndroidSpellCheckerService extends SpellCheckerService
public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
final int suggestionsLimit) {
try {
- final String text = textInfo.getText();
+ final String inText = textInfo.getText();
final SuggestionsParams cachedSuggestionsParams =
- mSuggestionsCache.getSuggestionsFromCache(text);
+ mSuggestionsCache.getSuggestionsFromCache(inText);
if (cachedSuggestionsParams != null) {
if (DBG) {
- Log.d(TAG, "Cache hit: " + text + ", " + cachedSuggestionsParams.mFlags);
+ Log.d(TAG, "Cache hit: " + inText + ", " + cachedSuggestionsParams.mFlags);
}
return new SuggestionsInfo(
cachedSuggestionsParams.mFlags, cachedSuggestionsParams.mSuggestions);
}
- if (shouldFilterOut(text, mScript)) {
+ if (shouldFilterOut(inText, mScript)) {
DictAndProximity dictInfo = null;
try {
dictInfo = mDictionaryPool.takeOrGetNull();
if (null == dictInfo) return getNotInDictEmptySuggestions();
- return dictInfo.mDictionary.isValidWord(text) ? getInDictEmptySuggestions()
- : getNotInDictEmptySuggestions();
+ return dictInfo.mDictionary.isValidWord(inText) ?
+ getInDictEmptySuggestions() : getNotInDictEmptySuggestions();
} finally {
if (null != dictInfo) {
if (!mDictionaryPool.offer(dictInfo)) {
@@ -600,6 +602,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
}
}
}
+ final String text = inText.replaceAll(APOSTROPHE, SINGLE_QUOTE);
// TODO: Don't gather suggestions if the limit is <= 0 unless necessary
final SuggestionsGatherer suggestionsGatherer = new SuggestionsGatherer(text,