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