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.java30
1 files changed, 24 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 3e6090c72..b90547483 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(prevWordForBigram);
mHaveCorrection = false;
mCapitalize = wordComposer.isCapitalized();
collectGarbage(mSuggestions, mPrefMaxSuggestions);
@@ -205,12 +214,17 @@ public class Suggest implements Dictionary.WordCallback {
// Save a lowercase version of the original word
mOriginalWord = wordComposer.getTypedWord();
if (mOriginalWord != null) {
- mOriginalWord = mOriginalWord.toString();
- mLowerOriginalWord = mOriginalWord.toString().toLowerCase();
+ final String mOriginalWordString = mOriginalWord.toString();
+ mOriginalWord = mOriginalWordString;
+ mLowerOriginalWord = mOriginalWordString.toLowerCase();
+ // Treating USER_TYPED as UNIGRAM suggestion for logging now.
+ LatinImeLogger.onAddSuggestedWord(mOriginalWordString, Suggest.DIC_USER_TYPED,
+ Dictionary.DataType.UNIGRAM);
} 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 +370,8 @@ 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) {
+ Dictionary.DataType dataTypeForLog = dataType;
ArrayList<CharSequence> suggestions;
int[] priorities;
int prefMaxSuggestions;
@@ -380,6 +395,7 @@ public class Suggest implements Dictionary.WordCallback {
// Check if the word was already added before (by bigram data)
int bigramSuggestion = searchBigramSuggestion(word,offset,length);
if(bigramSuggestion >= 0) {
+ dataTypeForLog = Dictionary.DataType.BIGRAM;
// turn freq from bigram into multiplier specified above
double multiplier = (((double) mBigramPriorities[bigramSuggestion])
/ MAXIMUM_BIGRAM_FREQUENCY)
@@ -404,7 +420,7 @@ public class Suggest implements Dictionary.WordCallback {
pos++;
}
}
-
+
if (pos >= prefMaxSuggestions) {
return true;
}
@@ -430,6 +446,8 @@ public class Suggest implements Dictionary.WordCallback {
if (garbage instanceof StringBuilder) {
mStringPool.add(garbage);
}
+ } else {
+ LatinImeLogger.onAddSuggestedWord(sb.toString(), dicTypeId, dataTypeForLog);
}
return true;
}