diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin/BinaryDictionary.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/BinaryDictionary.java | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 174bbfb8e..0e03b5280 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -57,7 +57,7 @@ public final class BinaryDictionary extends Dictionary { @UsedForTesting public static final String MAX_BIGRAM_COUNT_QUERY = "MAX_BIGRAM_COUNT"; - private static final int NOT_A_VALID_TIME_STAMP = -1; + public static final int NOT_A_VALID_TIME_STAMP = -1; private long mNativeDict; private final Locale mLocale; @@ -138,9 +138,9 @@ public final class BinaryDictionary extends Dictionary { private static native int editDistanceNative(int[] before, int[] after); private static native void addUnigramWordNative(long dict, int[] word, int probability, int[] shortcutTarget, int shortcutProbability, boolean isNotAWord, - boolean isBlacklisted, int timeStamp); + boolean isBlacklisted, int timestamp); private static native void addBigramWordsNative(long dict, int[] word0, int[] word1, - int probability, int timeStamp); + int probability, int timestamp); private static native void removeBigramWordsNative(long dict, int[] word0, int[] word1); private static native int addMultipleDictionaryEntriesNative(long dict, LanguageModelParam[] languageModelParams, int startIndex); @@ -291,12 +291,26 @@ public final class BinaryDictionary extends Dictionary { return; } final int[] codePoints = StringUtils.toCodePointArray(word); - final int[] shortcutTarget = new int[0]; - addUnigramWordNative(mNativeDict, codePoints, probability, shortcutTarget, + final int[] shortcutTargetCodePoints = new int[0]; + addUnigramWordNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints, NOT_A_PROBABILITY, false /* isNotAWord */, false /* isBlacklisted */, NOT_A_VALID_TIME_STAMP); } + // Add a unigram entry to binary dictionary with unigram attributes in native code. + 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)) { + return; + } + final int[] codePoints = StringUtils.toCodePointArray(word); + final int[] shortcutTargetCodePoints = (shortcutTarget != null) ? + StringUtils.toCodePointArray(shortcutTarget) : null; + addUnigramWordNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints, + shortcutProbability, isNotAWord, isBlacklisted, timestamp); + } + // Add a bigram entry to binary dictionary in native code. public void addBigramWords(final String word0, final String word1, final int probability) { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { @@ -308,6 +322,17 @@ public final class BinaryDictionary extends Dictionary { NOT_A_VALID_TIME_STAMP); } + // 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(word0) || TextUtils.isEmpty(word1)) { + return; + } + final int[] codePoints0 = StringUtils.toCodePointArray(word0); + final int[] codePoints1 = StringUtils.toCodePointArray(word1); + addBigramWordsNative(mNativeDict, codePoints0, codePoints1, probability, timestamp); + } + // 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)) { @@ -327,10 +352,11 @@ public final class BinaryDictionary extends Dictionary { public final int mShortcutProbability; public final boolean mIsNotAWord; public final boolean mIsBlacklisted; - public final int mTimeStamp; + public final int mTimestamp; // Constructor for unigram. - public LanguageModelParam(final String word, final int unigramProbability) { + public LanguageModelParam(final String word, final int unigramProbability, + final int timestamp) { mWord0 = null; mWord1 = StringUtils.toCodePointArray(word); mShortcutTarget = null; @@ -339,12 +365,13 @@ public final class BinaryDictionary extends Dictionary { mShortcutProbability = NOT_A_PROBABILITY; mIsNotAWord = false; mIsBlacklisted = false; - mTimeStamp = NOT_A_VALID_TIME_STAMP; + mTimestamp = timestamp; } // Constructor for unigram and bigram. public LanguageModelParam(final String word0, final String word1, - final int unigramProbability, final int bigramProbability) { + final int unigramProbability, final int bigramProbability, + final int timestamp) { mWord0 = StringUtils.toCodePointArray(word0); mWord1 = StringUtils.toCodePointArray(word1); mShortcutTarget = null; @@ -353,7 +380,7 @@ public final class BinaryDictionary extends Dictionary { mShortcutProbability = NOT_A_PROBABILITY; mIsNotAWord = false; mIsBlacklisted = false; - mTimeStamp = NOT_A_VALID_TIME_STAMP; + mTimestamp = timestamp; } } |