Loading java/src/com/android/inputmethod/latin/AutoCorrection.java +19 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,24 @@ public class AutoCorrection { return false; } public static int getMaxFrequency(final ConcurrentHashMap<String, Dictionary> dictionaries, CharSequence word) { if (TextUtils.isEmpty(word)) { return Dictionary.NOT_A_PROBABILITY; } int maxFreq = -1; for (final String key : dictionaries.keySet()) { if (key.equals(Suggest.DICT_KEY_WHITELIST)) continue; final Dictionary dictionary = dictionaries.get(key); if (null == dictionary) continue; final int tempFreq = dictionary.getFrequency(word); if (tempFreq >= maxFreq) { maxFreq = tempFreq; } } return maxFreq; } public static boolean allowsToBeAutoCorrected( final ConcurrentHashMap<String, Dictionary> dictionaries, final CharSequence word, final boolean ignoreCase) { Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +7 −3 Original line number Diff line number Diff line Loading @@ -201,10 +201,14 @@ public class BinaryDictionary extends Dictionary { @Override public boolean isValidWord(CharSequence word) { if (word == null) return false; return getFrequency(word) >= 0; } @Override public int getFrequency(CharSequence word) { if (word == null) return -1; int[] chars = StringUtils.toCodePointArray(word.toString()); final int freq = getFrequencyNative(mNativeDict, chars, chars.length); return freq >= 0; return getFrequencyNative(mNativeDict, chars, chars.length); } // TODO: Add a batch process version (isValidBigramMultiple?) to avoid excessive numbers of jni Loading java/src/com/android/inputmethod/latin/Dictionary.java +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ public abstract class Dictionary { public static final int UNIGRAM = 0; public static final int BIGRAM = 1; public static final int NOT_A_PROBABILITY = -1; /** * Interface to be implemented by classes requesting words to be fetched from the dictionary. * @see #getWords(WordComposer, CharSequence, WordCallback, ProximityInfo) Loading Loading @@ -84,6 +85,10 @@ public abstract class Dictionary { */ abstract public boolean isValidWord(CharSequence word); public int getFrequency(CharSequence word) { return NOT_A_PROBABILITY; } /** * Compares the contents of the character array with the typed word and returns true if they * are the same. Loading java/src/com/android/inputmethod/latin/DictionaryCollection.java +12 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,18 @@ public class DictionaryCollection extends Dictionary { return false; } @Override public int getFrequency(CharSequence word) { int maxFreq = -1; for (int i = mDictionaries.size() - 1; i >= 0; --i) { final int tempFreq = mDictionaries.get(i).getFrequency(word); if (tempFreq >= maxFreq) { maxFreq = tempFreq; } } return maxFreq; } public boolean isEmpty() { return mDictionaries.isEmpty(); } Loading java/src/com/android/inputmethod/latin/ExpandableDictionary.java +5 −6 Original line number Diff line number Diff line Loading @@ -84,8 +84,7 @@ public class ExpandableDictionary extends Dictionary { protected interface NextWord { public Node getWordNode(); public int getFrequency(); /** FcValue is a bit set */ public int getFcValue(); public ForgettingCurveParams getFcParams(); public int notifyTypedAgainAndGetFrequency(); } Loading @@ -108,8 +107,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public int getFcValue() { return mFrequency; public ForgettingCurveParams getFcParams() { return null; } @Override Loading Loading @@ -138,8 +137,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public int getFcValue() { return mFcp.getFc(); public ForgettingCurveParams getFcParams() { return mFcp; } @Override Loading Loading
java/src/com/android/inputmethod/latin/AutoCorrection.java +19 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,24 @@ public class AutoCorrection { return false; } public static int getMaxFrequency(final ConcurrentHashMap<String, Dictionary> dictionaries, CharSequence word) { if (TextUtils.isEmpty(word)) { return Dictionary.NOT_A_PROBABILITY; } int maxFreq = -1; for (final String key : dictionaries.keySet()) { if (key.equals(Suggest.DICT_KEY_WHITELIST)) continue; final Dictionary dictionary = dictionaries.get(key); if (null == dictionary) continue; final int tempFreq = dictionary.getFrequency(word); if (tempFreq >= maxFreq) { maxFreq = tempFreq; } } return maxFreq; } public static boolean allowsToBeAutoCorrected( final ConcurrentHashMap<String, Dictionary> dictionaries, final CharSequence word, final boolean ignoreCase) { Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +7 −3 Original line number Diff line number Diff line Loading @@ -201,10 +201,14 @@ public class BinaryDictionary extends Dictionary { @Override public boolean isValidWord(CharSequence word) { if (word == null) return false; return getFrequency(word) >= 0; } @Override public int getFrequency(CharSequence word) { if (word == null) return -1; int[] chars = StringUtils.toCodePointArray(word.toString()); final int freq = getFrequencyNative(mNativeDict, chars, chars.length); return freq >= 0; return getFrequencyNative(mNativeDict, chars, chars.length); } // TODO: Add a batch process version (isValidBigramMultiple?) to avoid excessive numbers of jni Loading
java/src/com/android/inputmethod/latin/Dictionary.java +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ public abstract class Dictionary { public static final int UNIGRAM = 0; public static final int BIGRAM = 1; public static final int NOT_A_PROBABILITY = -1; /** * Interface to be implemented by classes requesting words to be fetched from the dictionary. * @see #getWords(WordComposer, CharSequence, WordCallback, ProximityInfo) Loading Loading @@ -84,6 +85,10 @@ public abstract class Dictionary { */ abstract public boolean isValidWord(CharSequence word); public int getFrequency(CharSequence word) { return NOT_A_PROBABILITY; } /** * Compares the contents of the character array with the typed word and returns true if they * are the same. Loading
java/src/com/android/inputmethod/latin/DictionaryCollection.java +12 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,18 @@ public class DictionaryCollection extends Dictionary { return false; } @Override public int getFrequency(CharSequence word) { int maxFreq = -1; for (int i = mDictionaries.size() - 1; i >= 0; --i) { final int tempFreq = mDictionaries.get(i).getFrequency(word); if (tempFreq >= maxFreq) { maxFreq = tempFreq; } } return maxFreq; } public boolean isEmpty() { return mDictionaries.isEmpty(); } Loading
java/src/com/android/inputmethod/latin/ExpandableDictionary.java +5 −6 Original line number Diff line number Diff line Loading @@ -84,8 +84,7 @@ public class ExpandableDictionary extends Dictionary { protected interface NextWord { public Node getWordNode(); public int getFrequency(); /** FcValue is a bit set */ public int getFcValue(); public ForgettingCurveParams getFcParams(); public int notifyTypedAgainAndGetFrequency(); } Loading @@ -108,8 +107,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public int getFcValue() { return mFrequency; public ForgettingCurveParams getFcParams() { return null; } @Override Loading Loading @@ -138,8 +137,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public int getFcValue() { return mFcp.getFc(); public ForgettingCurveParams getFcParams() { return mFcp; } @Override Loading