aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/Suggest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Suggest.java')
-rwxr-xr-xjava/src/com/android/inputmethod/latin/Suggest.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 3e6090c72..6705e9a36 100755
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -53,6 +53,14 @@ public class Suggest implements Dictionary.WordCallback {
*/
public static final int MAXIMUM_BIGRAM_FREQUENCY = 127;
+ public static final int DIC_USER_TYPED = 0;
+ public static final int DIC_MAIN = 1;
+ public static final int DIC_USER = 2;
+ public static final int DIC_AUTO = 3;
+ public static final int DIC_CONTACTS = 4;
+ // If you add a type of dictionary, increment DIC_TYPE_LAST_ID
+ public static final int DIC_TYPE_LAST_ID = 4;
+
static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000;
private BinaryDictionary mMainDict;
@@ -88,12 +96,12 @@ public class Suggest implements Dictionary.WordCallback {
private int mCorrectionMode = CORRECTION_BASIC;
public Suggest(Context context, int dictionaryResId) {
- mMainDict = new BinaryDictionary(context, dictionaryResId);
+ mMainDict = new BinaryDictionary(context, dictionaryResId, DIC_MAIN);
initPool();
}
public Suggest(Context context, ByteBuffer byteBuffer) {
- mMainDict = new BinaryDictionary(context, byteBuffer);
+ mMainDict = new BinaryDictionary(context, byteBuffer, DIC_MAIN);
initPool();
}
@@ -196,6 +204,7 @@ public class Suggest implements Dictionary.WordCallback {
*/
public List<CharSequence> getSuggestions(View view, WordComposer wordComposer,
boolean includeTypedWordIfValid, CharSequence prevWordForBigram) {
+ LatinImeLogger.onStartSuggestion();
mHaveCorrection = false;
mCapitalize = wordComposer.isCapitalized();
collectGarbage(mSuggestions, mPrefMaxSuggestions);
@@ -207,10 +216,12 @@ public class Suggest implements Dictionary.WordCallback {
if (mOriginalWord != null) {
mOriginalWord = mOriginalWord.toString();
mLowerOriginalWord = mOriginalWord.toString().toLowerCase();
+ LatinImeLogger.onAddSuggestedWord(mOriginalWord.toString(), Suggest.DIC_USER_TYPED);
} else {
mLowerOriginalWord = "";
}
+ // Search the dictionary only if there are at least 2 characters
if (wordComposer.size() == 1 && (mCorrectionMode == CORRECTION_FULL_BIGRAM
|| mCorrectionMode == CORRECTION_BASIC)) {
// At first character, just get the bigrams
@@ -356,7 +367,7 @@ public class Suggest implements Dictionary.WordCallback {
}
public boolean addWord(final char[] word, final int offset, final int length, int freq,
- final Dictionary.DataType dataType) {
+ final int dicTypeId, final Dictionary.DataType dataType) {
ArrayList<CharSequence> suggestions;
int[] priorities;
int prefMaxSuggestions;
@@ -404,7 +415,7 @@ public class Suggest implements Dictionary.WordCallback {
pos++;
}
}
-
+
if (pos >= prefMaxSuggestions) {
return true;
}
@@ -430,6 +441,8 @@ public class Suggest implements Dictionary.WordCallback {
if (garbage instanceof StringBuilder) {
mStringPool.add(garbage);
}
+ } else {
+ LatinImeLogger.onAddSuggestedWord(sb.toString(), dicTypeId);
}
return true;
}