Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +17 −20 Original line number Diff line number Diff line Loading @@ -359,16 +359,14 @@ public final class BinaryDictionary extends Dictionary { } @UsedForTesting public boolean isValidNgram(final PrevWordsInfo prevWordsInfo, final String word) { return getNgramProbability(prevWordsInfo, word) != NOT_A_PROBABILITY; public boolean isValidBigram(final String word0, final String word1) { return getBigramProbability(word0, word1) != NOT_A_PROBABILITY; } public int getNgramProbability(final PrevWordsInfo prevWordsInfo, final String word) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { return NOT_A_PROBABILITY; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); public int getBigramProbability(final String word0, final String word1) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) return NOT_A_PROBABILITY; final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); return getBigramProbabilityNative(mNativeDict, codePoints0, codePoints1); } Loading Loading @@ -419,7 +417,7 @@ public final class BinaryDictionary extends Dictionary { } // Add a unigram entry to binary dictionary with unigram attributes in native code. public void addUnigramEntry(final String word, final int probability, public void addUnigramWord(final String word, final int probability, final String shortcutTarget, final int shortcutProbability, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { if (TextUtils.isEmpty(word)) { Loading @@ -433,26 +431,25 @@ public final class BinaryDictionary extends Dictionary { mHasUpdated = true; } // Add an n-gram entry to the binary dictionary with timestamp in native code. public void addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word, final int probability, // Add a bigram entry to binary dictionary with timestamp in native code. public void addBigramWords(final String word0, final String word1, final int probability, final int timestamp) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); addBigramWordsNative(mNativeDict, codePoints0, codePoints1, probability, timestamp); mHasUpdated = true; } // Remove an n-gram entry from the binary dictionary in native code. public void removeNgramEntry(final PrevWordsInfo prevWordsInfo, final String word) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { // Remove a bigram entry form binary dictionary in native code. public void removeBigramWords(final String word0, final String word1) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); removeBigramWordsNative(mNativeDict, codePoints0, codePoints1); mHasUpdated = true; } Loading java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java +8 −8 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { Log.d(TAG, "loadAccountVocabulary: " + word); } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, addWordDynamicallyLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */, false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP); } Loading Loading @@ -224,7 +224,7 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { */ private void addNameLocked(final String name) { int len = StringUtils.codePointCount(name); PrevWordsInfo prevWordsInfo = new PrevWordsInfo(null); String prevWord = null; // TODO: Better tokenization for non-Latin writing systems for (int i = 0; i < len; i++) { if (Character.isLetter(name.codePointAt(i))) { Loading @@ -239,19 +239,19 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { final int wordLen = StringUtils.codePointCount(word); if (wordLen < MAX_WORD_LENGTH && wordLen > 1) { if (DEBUG) { Log.d(TAG, "addName " + name + ", " + word + ", " + prevWordsInfo.mPrevWord); Log.d(TAG, "addName " + name + ", " + word + ", " + prevWord); } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, FREQUENCY_FOR_CONTACTS, addWordDynamicallyLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */, false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP); if (!TextUtils.isEmpty(prevWordsInfo.mPrevWord) && mUseFirstLastBigrams) { if (!TextUtils.isEmpty(prevWord) && mUseFirstLastBigrams) { runGCIfRequiredLocked(true /* mindsBlockByGC */); addNgramEntryLocked(prevWordsInfo, word, FREQUENCY_FOR_CONTACTS_BIGRAM, addBigramDynamicallyLocked(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM, BinaryDictionary.NOT_A_VALID_TIMESTAMP); } prevWordsInfo = new PrevWordsInfo(word); prevWord = word; } } } Loading java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java +9 −11 Original line number Diff line number Diff line Loading @@ -370,23 +370,22 @@ public class DictionaryFacilitatorForSuggest { } public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized, final PrevWordsInfo prevWordsInfo, final int timeStampInSeconds, final String previousWord, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { final Dictionaries dictionaries = mDictionaries; final String[] words = suggestion.split(Constants.WORD_SEPARATOR); for (int i = 0; i < words.length; i++) { final String currentWord = words[i]; final PrevWordsInfo prevWordsInfoForCurrentWord = (i == 0) ? prevWordsInfo : new PrevWordsInfo(words[i - 1]); final String prevWord = (i == 0) ? previousWord : words[i - 1]; final boolean wasCurrentWordAutoCapitalized = (i == 0) ? wasAutoCapitalized : false; addWordToUserHistory(dictionaries, prevWordsInfoForCurrentWord, currentWord, addWordToUserHistory(dictionaries, prevWord, currentWord, wasCurrentWordAutoCapitalized, timeStampInSeconds, blockPotentiallyOffensive); } } private void addWordToUserHistory(final Dictionaries dictionaries, final PrevWordsInfo prevWordsInfo, final String word, final boolean wasAutoCapitalized, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { private void addWordToUserHistory(final Dictionaries dictionaries, final String prevWord, final String word, final boolean wasAutoCapitalized, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { final ExpandableBinaryDictionary userHistoryDictionary = dictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY); if (userHistoryDictionary == null) { Loading Loading @@ -431,16 +430,15 @@ public class DictionaryFacilitatorForSuggest { // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid". // We don't add words with 0-frequency (assuming they would be profanity etc.). final boolean isValid = maxFreq > 0; UserHistoryDictionary.addToDictionary(userHistoryDictionary, prevWordsInfo, secondWord, UserHistoryDictionary.addToDictionary(userHistoryDictionary, prevWord, secondWord, isValid, timeStampInSeconds); } public void cancelAddingUserHistory(final PrevWordsInfo prevWordsInfo, final String committedWord) { public void cancelAddingUserHistory(final String previousWord, final String committedWord) { final ExpandableBinaryDictionary userHistoryDictionary = mDictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY); if (userHistoryDictionary != null) { userHistoryDictionary.removeNgramDynamically(prevWordsInfo, committedWord); userHistoryDictionary.removeBigramDynamically(previousWord, committedWord); } } Loading java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +15 −15 Original line number Diff line number Diff line Loading @@ -269,9 +269,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } /** * Adds unigram information of a word to the dictionary. May overwrite an existing entry. * Dynamically adds a word unigram to the dictionary. May overwrite an existing entry. */ public void addUnigramEntry(final String word, final int frequency, public void addWordDynamically(final String word, final int frequency, final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { reloadDictionaryIfRequired(); Loading @@ -282,23 +282,23 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, frequency, shortcutTarget, shortcutFreq, addWordDynamicallyLocked(word, frequency, shortcutTarget, shortcutFreq, isNotAWord, isBlacklisted, timestamp); } }); } protected void addUnigramLocked(final String word, final int frequency, protected void addWordDynamicallyLocked(final String word, final int frequency, final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { mBinaryDictionary.addUnigramEntry(word, frequency, shortcutTarget, shortcutFreq, mBinaryDictionary.addUnigramWord(word, frequency, shortcutTarget, shortcutFreq, isNotAWord, isBlacklisted, timestamp); } /** * Adds n-gram information of a word to the dictionary. May overwrite an existing entry. * Dynamically adds a word bigram in the dictionary. May overwrite an existing entry. */ public void addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word, public void addBigramDynamically(final String word0, final String word1, final int frequency, final int timestamp) { reloadDictionaryIfRequired(); asyncExecuteTaskWithWriteLock(new Runnable() { Loading @@ -308,20 +308,20 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); addNgramEntryLocked(prevWordsInfo, word, frequency, timestamp); addBigramDynamicallyLocked(word0, word1, frequency, timestamp); } }); } protected void addNgramEntryLocked(final PrevWordsInfo prevWordsInfo, final String word, protected void addBigramDynamicallyLocked(final String word0, final String word1, final int frequency, final int timestamp) { mBinaryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp); mBinaryDictionary.addBigramWords(word0, word1, frequency, timestamp); } /** * Dynamically remove the n-gram entry in the dictionary. * Dynamically remove a word bigram in the dictionary. */ public void removeNgramDynamically(final PrevWordsInfo prevWordsInfo, final String word1) { public void removeBigramDynamically(final String word0, final String word1) { reloadDictionaryIfRequired(); asyncExecuteTaskWithWriteLock(new Runnable() { @Override Loading @@ -330,7 +330,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); mBinaryDictionary.removeNgramEntry(prevWordsInfo, word1); mBinaryDictionary.removeBigramWords(word0, word1); } }); } Loading Loading @@ -428,9 +428,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return mBinaryDictionary.isValidWord(word); } protected boolean isValidNgramLocked(final PrevWordsInfo prevWordsInfo, final String word) { protected boolean isValidBigramLocked(final String word1, final String word2) { if (mBinaryDictionary == null) return false; return mBinaryDictionary.isValidNgram(prevWordsInfo, word); return mBinaryDictionary.isValidBigram(word1, word2); } /** Loading java/src/com/android/inputmethod/latin/LastComposedWord.java +3 −3 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public final class LastComposedWord { public final String mTypedWord; public final CharSequence mCommittedWord; public final String mSeparatorString; public final PrevWordsInfo mPrevWordsInfo; public final String mPrevWord; public final int mCapitalizedMode; public final InputPointers mInputPointers = new InputPointers(Constants.DICTIONARY_MAX_WORD_LENGTH); Loading @@ -64,7 +64,7 @@ public final class LastComposedWord { public LastComposedWord(final ArrayList<Event> events, final InputPointers inputPointers, final String typedWord, final CharSequence committedWord, final String separatorString, final PrevWordsInfo prevWordsInfo, final int capitalizedMode) { final String prevWord, final int capitalizedMode) { if (inputPointers != null) { mInputPointers.copy(inputPointers); } Loading @@ -73,7 +73,7 @@ public final class LastComposedWord { mCommittedWord = committedWord; mSeparatorString = separatorString; mActive = true; mPrevWordsInfo = prevWordsInfo; mPrevWord = prevWord; mCapitalizedMode = capitalizedMode; } Loading Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +17 −20 Original line number Diff line number Diff line Loading @@ -359,16 +359,14 @@ public final class BinaryDictionary extends Dictionary { } @UsedForTesting public boolean isValidNgram(final PrevWordsInfo prevWordsInfo, final String word) { return getNgramProbability(prevWordsInfo, word) != NOT_A_PROBABILITY; public boolean isValidBigram(final String word0, final String word1) { return getBigramProbability(word0, word1) != NOT_A_PROBABILITY; } public int getNgramProbability(final PrevWordsInfo prevWordsInfo, final String word) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { return NOT_A_PROBABILITY; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); public int getBigramProbability(final String word0, final String word1) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) return NOT_A_PROBABILITY; final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); return getBigramProbabilityNative(mNativeDict, codePoints0, codePoints1); } Loading Loading @@ -419,7 +417,7 @@ public final class BinaryDictionary extends Dictionary { } // Add a unigram entry to binary dictionary with unigram attributes in native code. public void addUnigramEntry(final String word, final int probability, public void addUnigramWord(final String word, final int probability, final String shortcutTarget, final int shortcutProbability, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { if (TextUtils.isEmpty(word)) { Loading @@ -433,26 +431,25 @@ public final class BinaryDictionary extends Dictionary { mHasUpdated = true; } // Add an n-gram entry to the binary dictionary with timestamp in native code. public void addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word, final int probability, // Add a bigram entry to binary dictionary with timestamp in native code. public void addBigramWords(final String word0, final String word1, final int probability, final int timestamp) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); addBigramWordsNative(mNativeDict, codePoints0, codePoints1, probability, timestamp); mHasUpdated = true; } // Remove an n-gram entry from the binary dictionary in native code. public void removeNgramEntry(final PrevWordsInfo prevWordsInfo, final String word) { if (TextUtils.isEmpty(prevWordsInfo.mPrevWord) || TextUtils.isEmpty(word)) { // Remove a bigram entry form binary dictionary in native code. public void removeBigramWords(final String word0, final String word1) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } final int[] codePoints0 = StringUtils.toCodePointArray(prevWordsInfo.mPrevWord); final int[] codePoints1 = StringUtils.toCodePointArray(word); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); removeBigramWordsNative(mNativeDict, codePoints0, codePoints1); mHasUpdated = true; } Loading
java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java +8 −8 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { Log.d(TAG, "loadAccountVocabulary: " + word); } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, addWordDynamicallyLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */, false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP); } Loading Loading @@ -224,7 +224,7 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { */ private void addNameLocked(final String name) { int len = StringUtils.codePointCount(name); PrevWordsInfo prevWordsInfo = new PrevWordsInfo(null); String prevWord = null; // TODO: Better tokenization for non-Latin writing systems for (int i = 0; i < len; i++) { if (Character.isLetter(name.codePointAt(i))) { Loading @@ -239,19 +239,19 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary { final int wordLen = StringUtils.codePointCount(word); if (wordLen < MAX_WORD_LENGTH && wordLen > 1) { if (DEBUG) { Log.d(TAG, "addName " + name + ", " + word + ", " + prevWordsInfo.mPrevWord); Log.d(TAG, "addName " + name + ", " + word + ", " + prevWord); } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, FREQUENCY_FOR_CONTACTS, addWordDynamicallyLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */, false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP); if (!TextUtils.isEmpty(prevWordsInfo.mPrevWord) && mUseFirstLastBigrams) { if (!TextUtils.isEmpty(prevWord) && mUseFirstLastBigrams) { runGCIfRequiredLocked(true /* mindsBlockByGC */); addNgramEntryLocked(prevWordsInfo, word, FREQUENCY_FOR_CONTACTS_BIGRAM, addBigramDynamicallyLocked(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM, BinaryDictionary.NOT_A_VALID_TIMESTAMP); } prevWordsInfo = new PrevWordsInfo(word); prevWord = word; } } } Loading
java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java +9 −11 Original line number Diff line number Diff line Loading @@ -370,23 +370,22 @@ public class DictionaryFacilitatorForSuggest { } public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized, final PrevWordsInfo prevWordsInfo, final int timeStampInSeconds, final String previousWord, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { final Dictionaries dictionaries = mDictionaries; final String[] words = suggestion.split(Constants.WORD_SEPARATOR); for (int i = 0; i < words.length; i++) { final String currentWord = words[i]; final PrevWordsInfo prevWordsInfoForCurrentWord = (i == 0) ? prevWordsInfo : new PrevWordsInfo(words[i - 1]); final String prevWord = (i == 0) ? previousWord : words[i - 1]; final boolean wasCurrentWordAutoCapitalized = (i == 0) ? wasAutoCapitalized : false; addWordToUserHistory(dictionaries, prevWordsInfoForCurrentWord, currentWord, addWordToUserHistory(dictionaries, prevWord, currentWord, wasCurrentWordAutoCapitalized, timeStampInSeconds, blockPotentiallyOffensive); } } private void addWordToUserHistory(final Dictionaries dictionaries, final PrevWordsInfo prevWordsInfo, final String word, final boolean wasAutoCapitalized, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { private void addWordToUserHistory(final Dictionaries dictionaries, final String prevWord, final String word, final boolean wasAutoCapitalized, final int timeStampInSeconds, final boolean blockPotentiallyOffensive) { final ExpandableBinaryDictionary userHistoryDictionary = dictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY); if (userHistoryDictionary == null) { Loading Loading @@ -431,16 +430,15 @@ public class DictionaryFacilitatorForSuggest { // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid". // We don't add words with 0-frequency (assuming they would be profanity etc.). final boolean isValid = maxFreq > 0; UserHistoryDictionary.addToDictionary(userHistoryDictionary, prevWordsInfo, secondWord, UserHistoryDictionary.addToDictionary(userHistoryDictionary, prevWord, secondWord, isValid, timeStampInSeconds); } public void cancelAddingUserHistory(final PrevWordsInfo prevWordsInfo, final String committedWord) { public void cancelAddingUserHistory(final String previousWord, final String committedWord) { final ExpandableBinaryDictionary userHistoryDictionary = mDictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY); if (userHistoryDictionary != null) { userHistoryDictionary.removeNgramDynamically(prevWordsInfo, committedWord); userHistoryDictionary.removeBigramDynamically(previousWord, committedWord); } } Loading
java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +15 −15 Original line number Diff line number Diff line Loading @@ -269,9 +269,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } /** * Adds unigram information of a word to the dictionary. May overwrite an existing entry. * Dynamically adds a word unigram to the dictionary. May overwrite an existing entry. */ public void addUnigramEntry(final String word, final int frequency, public void addWordDynamically(final String word, final int frequency, final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { reloadDictionaryIfRequired(); Loading @@ -282,23 +282,23 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); addUnigramLocked(word, frequency, shortcutTarget, shortcutFreq, addWordDynamicallyLocked(word, frequency, shortcutTarget, shortcutFreq, isNotAWord, isBlacklisted, timestamp); } }); } protected void addUnigramLocked(final String word, final int frequency, protected void addWordDynamicallyLocked(final String word, final int frequency, final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord, final boolean isBlacklisted, final int timestamp) { mBinaryDictionary.addUnigramEntry(word, frequency, shortcutTarget, shortcutFreq, mBinaryDictionary.addUnigramWord(word, frequency, shortcutTarget, shortcutFreq, isNotAWord, isBlacklisted, timestamp); } /** * Adds n-gram information of a word to the dictionary. May overwrite an existing entry. * Dynamically adds a word bigram in the dictionary. May overwrite an existing entry. */ public void addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word, public void addBigramDynamically(final String word0, final String word1, final int frequency, final int timestamp) { reloadDictionaryIfRequired(); asyncExecuteTaskWithWriteLock(new Runnable() { Loading @@ -308,20 +308,20 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); addNgramEntryLocked(prevWordsInfo, word, frequency, timestamp); addBigramDynamicallyLocked(word0, word1, frequency, timestamp); } }); } protected void addNgramEntryLocked(final PrevWordsInfo prevWordsInfo, final String word, protected void addBigramDynamicallyLocked(final String word0, final String word1, final int frequency, final int timestamp) { mBinaryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp); mBinaryDictionary.addBigramWords(word0, word1, frequency, timestamp); } /** * Dynamically remove the n-gram entry in the dictionary. * Dynamically remove a word bigram in the dictionary. */ public void removeNgramDynamically(final PrevWordsInfo prevWordsInfo, final String word1) { public void removeBigramDynamically(final String word0, final String word1) { reloadDictionaryIfRequired(); asyncExecuteTaskWithWriteLock(new Runnable() { @Override Loading @@ -330,7 +330,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return; } runGCIfRequiredLocked(true /* mindsBlockByGC */); mBinaryDictionary.removeNgramEntry(prevWordsInfo, word1); mBinaryDictionary.removeBigramWords(word0, word1); } }); } Loading Loading @@ -428,9 +428,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { return mBinaryDictionary.isValidWord(word); } protected boolean isValidNgramLocked(final PrevWordsInfo prevWordsInfo, final String word) { protected boolean isValidBigramLocked(final String word1, final String word2) { if (mBinaryDictionary == null) return false; return mBinaryDictionary.isValidNgram(prevWordsInfo, word); return mBinaryDictionary.isValidBigram(word1, word2); } /** Loading
java/src/com/android/inputmethod/latin/LastComposedWord.java +3 −3 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public final class LastComposedWord { public final String mTypedWord; public final CharSequence mCommittedWord; public final String mSeparatorString; public final PrevWordsInfo mPrevWordsInfo; public final String mPrevWord; public final int mCapitalizedMode; public final InputPointers mInputPointers = new InputPointers(Constants.DICTIONARY_MAX_WORD_LENGTH); Loading @@ -64,7 +64,7 @@ public final class LastComposedWord { public LastComposedWord(final ArrayList<Event> events, final InputPointers inputPointers, final String typedWord, final CharSequence committedWord, final String separatorString, final PrevWordsInfo prevWordsInfo, final int capitalizedMode) { final String prevWord, final int capitalizedMode) { if (inputPointers != null) { mInputPointers.copy(inputPointers); } Loading @@ -73,7 +73,7 @@ public final class LastComposedWord { mCommittedWord = committedWord; mSeparatorString = separatorString; mActive = true; mPrevWordsInfo = prevWordsInfo; mPrevWord = prevWord; mCapitalizedMode = capitalizedMode; } Loading