aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Zivkovic <zivkovic@google.com>2015-03-12 10:49:29 -0700
committerDan Zivkovic <zivkovic@google.com>2015-03-12 10:49:29 -0700
commit26fb83c481034cb9dbc9504e60fde40c6b213e97 (patch)
tree8b7fd05f507d092d0d9dcb6f0e4d9fda25cafe88
parent7e1dfaae3d6ca9aff1acfa9b358ad0b759ef0ec8 (diff)
downloadlatinime-26fb83c481034cb9dbc9504e60fde40c6b213e97.tar.gz
latinime-26fb83c481034cb9dbc9504e60fde40c6b213e97.tar.xz
latinime-26fb83c481034cb9dbc9504e60fde40c6b213e97.zip
Avoid creating empty String[].
Minor cleanup on the way to fixing spelling for downloaded language. Bug 19710676. Change-Id: I7be25fa82248f0317d894d44802bede9dbc4fe2a
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java6
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java17
2 files changed, 12 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index f52444154..00f69f158 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -92,7 +92,8 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
}
}
- @Override public void onCreate() {
+ @Override
+ public void onCreate() {
super.onCreate();
mRecommendedThreshold =
Float.parseFloat(getString(R.string.spellchecker_recommended_threshold_value));
@@ -110,7 +111,8 @@ public final class AndroidSpellCheckerService extends SpellCheckerService
}
}
- @Override public void onDestroy() {
+ @Override
+ public void onDestroy() {
if (DEBUG) {
Log.d(TAG, "Closing and dereferencing mUserDictionaryLookup in onDestroy");
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index 5c1915c6c..da5c71738 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -41,6 +41,7 @@ import com.android.inputmethod.latin.utils.StatsUtils;
import com.android.inputmethod.latin.utils.SuggestionResults;
import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
public abstract class AndroidWordLevelSpellCheckerSession extends Session {
@@ -259,7 +260,6 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
final String text = inText.replaceAll(
AndroidSpellCheckerService.APOSTROPHE, AndroidSpellCheckerService.SINGLE_QUOTE);
final int capitalizeType = StringUtils.getCapitalizationType(text);
- boolean isInDict = true;
if (!mService.hasMainDictionaryForLocale(mLocale)) {
return AndroidSpellCheckerService.getNotInDictEmptySuggestions(
false /* reportAsTypo */);
@@ -281,7 +281,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
mLocale, composer.getComposedDataSnapshot(), ngramContext, keyboard);
final Result result = getResult(capitalizeType, mLocale, suggestionsLimit,
mService.getRecommendedThreshold(), text, suggestionResults);
- isInDict = isInDictForAnyCapitalization(text, capitalizeType);
+ final boolean isInDict = isInDictForAnyCapitalization(text, capitalizeType);
if (DBG) {
Log.i(TAG, "Spell checking results for " + text + " with suggestion limit "
+ suggestionsLimit);
@@ -329,8 +329,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
private static final class Result {
public final String[] mSuggestions;
public final boolean mHasRecommendedSuggestions;
- public Result(final String[] gatheredSuggestions,
- final boolean hasRecommendedSuggestions) {
+ public Result(final String[] gatheredSuggestions, final boolean hasRecommendedSuggestions) {
mSuggestions = gatheredSuggestions;
mHasRecommendedSuggestions = hasRecommendedSuggestions;
}
@@ -364,14 +363,15 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
StringUtils.removeDupes(suggestions);
// This returns a String[], while toArray() returns an Object[] which cannot be cast
// into a String[].
+ final List<String> gatheredSuggestionsList =
+ suggestions.subList(0, Math.min(suggestions.size(), suggestionsLimit));
final String[] gatheredSuggestions =
- suggestions.subList(0, Math.min(suggestions.size(), suggestionsLimit))
- .toArray(EMPTY_STRING_ARRAY);
+ gatheredSuggestionsList.toArray(new String[gatheredSuggestionsList.size()]);
final int bestScore = suggestionResults.first().mScore;
final String bestSuggestion = suggestions.get(0);
final float normalizedScore = BinaryDictionaryUtils.calcNormalizedScore(
- originalText, bestSuggestion.toString(), bestScore);
+ originalText, bestSuggestion, bestScore);
final boolean hasRecommendedSuggestions = (normalizedScore > recommendedThreshold);
if (DBG) {
Log.i(TAG, "Best suggestion : " + bestSuggestion + ", score " + bestScore);
@@ -390,8 +390,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
* That's what the following method does.
*/
@Override
- public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
- final int suggestionsLimit) {
+ public SuggestionsInfo onGetSuggestions(final TextInfo textInfo, final int suggestionsLimit) {
long ident = Binder.clearCallingIdentity();
try {
return onGetSuggestionsInternal(textInfo, suggestionsLimit);