Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +25 −25 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import com.android.inputmethod.latin.utils.CollectionUtils; import com.android.inputmethod.latin.utils.JniUtils; import com.android.inputmethod.latin.utils.LanguageModelParam; import com.android.inputmethod.latin.utils.StringUtils; import com.android.inputmethod.latin.utils.UnigramProperty; import com.android.inputmethod.latin.utils.WordProperty; import java.io.File; import java.util.ArrayList; Loading Loading @@ -61,18 +61,18 @@ public final class BinaryDictionary extends Dictionary { public static final int NOT_A_VALID_TIMESTAMP = -1; // Format to get unigram flags from native side via getUnigramPropertyNative(). private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT = 4; private static final int FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX = 0; private static final int FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX = 1; private static final int FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX = 2; private static final int FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // Format to get unigram flags from native side via getWordPropertyNative(). private static final int FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT = 4; private static final int FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX = 0; private static final int FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX = 1; private static final int FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX = 2; private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // Format to get unigram historical info from native side via getUnigramPropertyNative(). private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3; private static final int FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX = 0; private static final int FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX = 1; private static final int FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX = 2; // Format to get unigram historical info from native side via getWordPropertyNative(). private static final int FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3; private static final int FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX = 0; private static final int FORMAT_WORD_PROPERTY_LEVEL_INDEX = 1; private static final int FORMAT_WORD_PROPERTY_COUNT_INDEX = 2; private long mNativeDict; private final Locale mLocale; Loading Loading @@ -143,7 +143,7 @@ public final class BinaryDictionary extends Dictionary { private static native int getFormatVersionNative(long dict); private static native int getProbabilityNative(long dict, int[] word); private static native int getBigramProbabilityNative(long dict, int[] word0, int[] word1); private static native void getUnigramPropertyNative(long dict, int[] word, private static native void getWordPropertyNative(long dict, int[] word, int[] outCodePoints, boolean[] outFlags, int[] outProbability, int[] outHistoricalInfo, ArrayList<int[]> outShortcutTargets, ArrayList<Integer> outShortcutProbabilities); Loading Loading @@ -306,28 +306,28 @@ public final class BinaryDictionary extends Dictionary { } @UsedForTesting public UnigramProperty getUnigramProperty(final String word) { public WordProperty getWordProperty(final String word) { if (TextUtils.isEmpty(word)) { return null; } final int[] codePoints = StringUtils.toCodePointArray(word); final int[] outCodePoints = new int[MAX_WORD_LENGTH]; final boolean[] outFlags = new boolean[FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT]; final boolean[] outFlags = new boolean[FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT]; final int[] outProbability = new int[1]; final int[] outHistoricalInfo = new int[FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT]; new int[FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT]; final ArrayList<int[]> outShortcutTargets = CollectionUtils.newArrayList(); final ArrayList<Integer> outShortcutProbabilities = CollectionUtils.newArrayList(); getUnigramPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability, getWordPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability, outHistoricalInfo, outShortcutTargets, outShortcutProbabilities); return new UnigramProperty(codePoints, outFlags[FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX], return new WordProperty(codePoints, outFlags[FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX], outFlags[FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX], outFlags[FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX], outFlags[FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0], outHistoricalInfo[FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX], outHistoricalInfo[FORMAT_WORD_PROPERTY_LEVEL_INDEX], outHistoricalInfo[FORMAT_WORD_PROPERTY_COUNT_INDEX], outShortcutTargets, outShortcutProbabilities); } Loading java/src/com/android/inputmethod/latin/utils/UnigramProperty.java→java/src/com/android/inputmethod/latin/utils/WordProperty.java +3 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import java.util.ArrayList; // This has information that belong to a unigram. This class has some detailed attributes such as // historical information but they have to be checked only for testing purpose. @UsedForTesting public class UnigramProperty { public class WordProperty { public final String mCodePoints; public final boolean mIsNotAWord; public final boolean mIsBlacklisted; Loading @@ -50,8 +50,8 @@ public class UnigramProperty { return codePoints.length; } // This represents invalid unigram when the probability is BinaryDictionary.NOT_A_PROBABILITY. public UnigramProperty(final int[] codePoints, final boolean isNotAWord, // This represents invalid word when the probability is BinaryDictionary.NOT_A_PROBABILITY. public WordProperty(final int[] codePoints, final boolean isNotAWord, final boolean isBlacklisted, final boolean hasBigram, final boolean hasShortcuts, final int probability, final int timestamp, final int level, final int count, final ArrayList<int[]> shortcutTargets, Loading native/jni/NativeFileList.mk +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ LATIN_IME_CORE_SRC_FILES := \ error_type_utils.cpp \ multi_bigram_map.cpp \ suggestions_output_utils.cpp \ unigram_property.cpp) \ word_property.cpp) \ $(addprefix suggest/core/layout/, \ additional_proximity_chars.cpp \ proximity_info.cpp \ Loading native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ #include "jni.h" #include "jni_common.h" #include "suggest/core/dictionary/dictionary.h" #include "suggest/core/dictionary/unigram_property.h" #include "suggest/core/dictionary/word_property.h" #include "suggest/core/suggest_options.h" #include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h" #include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h" Loading Loading @@ -260,7 +260,7 @@ static jint latinime_BinaryDictionary_getBigramProbability(JNIEnv *env, jclass c word1Length); } static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass clazz, static void latinime_BinaryDictionary_getWordProperty(JNIEnv *env, jclass clazz, jlong dict, jintArray word, jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbability, jintArray outHistoricalInfo, jobject outShortcutTargets, jobject outShortcutProbabilities) { Loading @@ -269,9 +269,8 @@ static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass cla const jsize wordLength = env->GetArrayLength(word); int wordCodePoints[wordLength]; env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints); const UnigramProperty unigramProperty = dictionary->getUnigramProperty( wordCodePoints, wordLength); unigramProperty.outputProperties(env, outCodePoints, outFlags, outProbability, const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, wordLength); wordProperty.outputProperties(env, outCodePoints, outFlags, outProbability, outHistoricalInfo, outShortcutTargets, outShortcutProbabilities); } Loading Loading @@ -521,9 +520,9 @@ static const JNINativeMethod sMethods[] = { reinterpret_cast<void *>(latinime_BinaryDictionary_getBigramProbability) }, { const_cast<char *>("getUnigramPropertyNative"), const_cast<char *>("getWordPropertyNative"), const_cast<char *>("(J[I[I[Z[I[ILjava/util/ArrayList;Ljava/util/ArrayList;)V"), reinterpret_cast<void *>(latinime_BinaryDictionary_getUnigramProperty) reinterpret_cast<void *>(latinime_BinaryDictionary_getWordProperty) }, { const_cast<char *>("calcNormalizedScoreNative"), Loading native/jni/src/suggest/core/dictionary/dictionary.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -143,10 +143,10 @@ void Dictionary::getProperty(const char *const query, const int queryLength, cha maxResultLength); } const UnigramProperty Dictionary::getUnigramProperty(const int *const codePoints, const WordProperty Dictionary::getWordProperty(const int *const codePoints, const int codePointCount) { TimeKeeper::setCurrentTime(); return mDictionaryStructureWithBufferPolicy.get()->getUnigramProperty( return mDictionaryStructureWithBufferPolicy.get()->getWordProperty( codePoints, codePointCount); } Loading Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +25 −25 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import com.android.inputmethod.latin.utils.CollectionUtils; import com.android.inputmethod.latin.utils.JniUtils; import com.android.inputmethod.latin.utils.LanguageModelParam; import com.android.inputmethod.latin.utils.StringUtils; import com.android.inputmethod.latin.utils.UnigramProperty; import com.android.inputmethod.latin.utils.WordProperty; import java.io.File; import java.util.ArrayList; Loading Loading @@ -61,18 +61,18 @@ public final class BinaryDictionary extends Dictionary { public static final int NOT_A_VALID_TIMESTAMP = -1; // Format to get unigram flags from native side via getUnigramPropertyNative(). private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT = 4; private static final int FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX = 0; private static final int FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX = 1; private static final int FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX = 2; private static final int FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // Format to get unigram flags from native side via getWordPropertyNative(). private static final int FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT = 4; private static final int FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX = 0; private static final int FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX = 1; private static final int FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX = 2; private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // Format to get unigram historical info from native side via getUnigramPropertyNative(). private static final int FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3; private static final int FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX = 0; private static final int FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX = 1; private static final int FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX = 2; // Format to get unigram historical info from native side via getWordPropertyNative(). private static final int FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT = 3; private static final int FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX = 0; private static final int FORMAT_WORD_PROPERTY_LEVEL_INDEX = 1; private static final int FORMAT_WORD_PROPERTY_COUNT_INDEX = 2; private long mNativeDict; private final Locale mLocale; Loading Loading @@ -143,7 +143,7 @@ public final class BinaryDictionary extends Dictionary { private static native int getFormatVersionNative(long dict); private static native int getProbabilityNative(long dict, int[] word); private static native int getBigramProbabilityNative(long dict, int[] word0, int[] word1); private static native void getUnigramPropertyNative(long dict, int[] word, private static native void getWordPropertyNative(long dict, int[] word, int[] outCodePoints, boolean[] outFlags, int[] outProbability, int[] outHistoricalInfo, ArrayList<int[]> outShortcutTargets, ArrayList<Integer> outShortcutProbabilities); Loading Loading @@ -306,28 +306,28 @@ public final class BinaryDictionary extends Dictionary { } @UsedForTesting public UnigramProperty getUnigramProperty(final String word) { public WordProperty getWordProperty(final String word) { if (TextUtils.isEmpty(word)) { return null; } final int[] codePoints = StringUtils.toCodePointArray(word); final int[] outCodePoints = new int[MAX_WORD_LENGTH]; final boolean[] outFlags = new boolean[FORMAT_UNIGRAM_PROPERTY_OUTPUT_FLAG_COUNT]; final boolean[] outFlags = new boolean[FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT]; final int[] outProbability = new int[1]; final int[] outHistoricalInfo = new int[FORMAT_UNIGRAM_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT]; new int[FORMAT_WORD_PROPERTY_OUTPUT_HISTORICAL_INFO_COUNT]; final ArrayList<int[]> outShortcutTargets = CollectionUtils.newArrayList(); final ArrayList<Integer> outShortcutProbabilities = CollectionUtils.newArrayList(); getUnigramPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability, getWordPropertyNative(mNativeDict, codePoints, outCodePoints, outFlags, outProbability, outHistoricalInfo, outShortcutTargets, outShortcutProbabilities); return new UnigramProperty(codePoints, outFlags[FORMAT_UNIGRAM_PROPERTY_IS_NOT_A_WORD_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_IS_BLACKLISTED_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_BIGRAMS_INDEX], outFlags[FORMAT_UNIGRAM_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_TIMESTAMP_INDEX], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_LEVEL_INDEX], outHistoricalInfo[FORMAT_UNIGRAM_PROPERTY_COUNT_INDEX], return new WordProperty(codePoints, outFlags[FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX], outFlags[FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX], outFlags[FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX], outFlags[FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX], outProbability[0], outHistoricalInfo[FORMAT_WORD_PROPERTY_TIMESTAMP_INDEX], outHistoricalInfo[FORMAT_WORD_PROPERTY_LEVEL_INDEX], outHistoricalInfo[FORMAT_WORD_PROPERTY_COUNT_INDEX], outShortcutTargets, outShortcutProbabilities); } Loading
java/src/com/android/inputmethod/latin/utils/UnigramProperty.java→java/src/com/android/inputmethod/latin/utils/WordProperty.java +3 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import java.util.ArrayList; // This has information that belong to a unigram. This class has some detailed attributes such as // historical information but they have to be checked only for testing purpose. @UsedForTesting public class UnigramProperty { public class WordProperty { public final String mCodePoints; public final boolean mIsNotAWord; public final boolean mIsBlacklisted; Loading @@ -50,8 +50,8 @@ public class UnigramProperty { return codePoints.length; } // This represents invalid unigram when the probability is BinaryDictionary.NOT_A_PROBABILITY. public UnigramProperty(final int[] codePoints, final boolean isNotAWord, // This represents invalid word when the probability is BinaryDictionary.NOT_A_PROBABILITY. public WordProperty(final int[] codePoints, final boolean isNotAWord, final boolean isBlacklisted, final boolean hasBigram, final boolean hasShortcuts, final int probability, final int timestamp, final int level, final int count, final ArrayList<int[]> shortcutTargets, Loading
native/jni/NativeFileList.mk +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ LATIN_IME_CORE_SRC_FILES := \ error_type_utils.cpp \ multi_bigram_map.cpp \ suggestions_output_utils.cpp \ unigram_property.cpp) \ word_property.cpp) \ $(addprefix suggest/core/layout/, \ additional_proximity_chars.cpp \ proximity_info.cpp \ Loading
native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ #include "jni.h" #include "jni_common.h" #include "suggest/core/dictionary/dictionary.h" #include "suggest/core/dictionary/unigram_property.h" #include "suggest/core/dictionary/word_property.h" #include "suggest/core/suggest_options.h" #include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h" #include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h" Loading Loading @@ -260,7 +260,7 @@ static jint latinime_BinaryDictionary_getBigramProbability(JNIEnv *env, jclass c word1Length); } static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass clazz, static void latinime_BinaryDictionary_getWordProperty(JNIEnv *env, jclass clazz, jlong dict, jintArray word, jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbability, jintArray outHistoricalInfo, jobject outShortcutTargets, jobject outShortcutProbabilities) { Loading @@ -269,9 +269,8 @@ static void latinime_BinaryDictionary_getUnigramProperty(JNIEnv *env, jclass cla const jsize wordLength = env->GetArrayLength(word); int wordCodePoints[wordLength]; env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints); const UnigramProperty unigramProperty = dictionary->getUnigramProperty( wordCodePoints, wordLength); unigramProperty.outputProperties(env, outCodePoints, outFlags, outProbability, const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, wordLength); wordProperty.outputProperties(env, outCodePoints, outFlags, outProbability, outHistoricalInfo, outShortcutTargets, outShortcutProbabilities); } Loading Loading @@ -521,9 +520,9 @@ static const JNINativeMethod sMethods[] = { reinterpret_cast<void *>(latinime_BinaryDictionary_getBigramProbability) }, { const_cast<char *>("getUnigramPropertyNative"), const_cast<char *>("getWordPropertyNative"), const_cast<char *>("(J[I[I[Z[I[ILjava/util/ArrayList;Ljava/util/ArrayList;)V"), reinterpret_cast<void *>(latinime_BinaryDictionary_getUnigramProperty) reinterpret_cast<void *>(latinime_BinaryDictionary_getWordProperty) }, { const_cast<char *>("calcNormalizedScoreNative"), Loading
native/jni/src/suggest/core/dictionary/dictionary.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -143,10 +143,10 @@ void Dictionary::getProperty(const char *const query, const int queryLength, cha maxResultLength); } const UnigramProperty Dictionary::getUnigramProperty(const int *const codePoints, const WordProperty Dictionary::getWordProperty(const int *const codePoints, const int codePointCount) { TimeKeeper::setCurrentTime(); return mDictionaryStructureWithBufferPolicy.get()->getUnigramProperty( return mDictionaryStructureWithBufferPolicy.get()->getWordProperty( codePoints, codePointCount); } Loading