Add jni method for getMaxFrequencyOfExactMatches().
Bug: 13142176 Bug: 15428247 Change-Id: I2ae25090b67ad0c6df97dec7712e2f7e0bb08c40main
parent
9d4d61f9c1
commit
d6b89e17a6
|
@ -189,6 +189,7 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
private static native void closeNative(long dict);
|
private static native void closeNative(long dict);
|
||||||
private static native int getFormatVersionNative(long dict);
|
private static native int getFormatVersionNative(long dict);
|
||||||
private static native int getProbabilityNative(long dict, int[] word);
|
private static native int getProbabilityNative(long dict, int[] word);
|
||||||
|
private static native int getMaxProbabilityOfExactMatchesNative(long dict, int[] word);
|
||||||
private static native int getBigramProbabilityNative(long dict, int[] word0,
|
private static native int getBigramProbabilityNative(long dict, int[] word0,
|
||||||
boolean isBeginningOfSentence, int[] word1);
|
boolean isBeginningOfSentence, int[] word1);
|
||||||
private static native void getWordPropertyNative(long dict, int[] word,
|
private static native void getWordPropertyNative(long dict, int[] word,
|
||||||
|
@ -350,11 +351,17 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFrequency(final String word) {
|
public int getFrequency(final String word) {
|
||||||
if (word == null) return NOT_A_PROBABILITY;
|
if (TextUtils.isEmpty(word)) return NOT_A_PROBABILITY;
|
||||||
int[] codePoints = StringUtils.toCodePointArray(word);
|
int[] codePoints = StringUtils.toCodePointArray(word);
|
||||||
return getProbabilityNative(mNativeDict, codePoints);
|
return getProbabilityNative(mNativeDict, codePoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getMaxFrequencyOfExactMatches(final String word) {
|
||||||
|
if (TextUtils.isEmpty(word)) return NOT_A_PROBABILITY;
|
||||||
|
int[] codePoints = StringUtils.toCodePointArray(word);
|
||||||
|
return getMaxProbabilityOfExactMatchesNative(mNativeDict, codePoints);
|
||||||
|
}
|
||||||
|
|
||||||
@UsedForTesting
|
@UsedForTesting
|
||||||
public boolean isValidNgram(final PrevWordsInfo prevWordsInfo, final String word) {
|
public boolean isValidNgram(final PrevWordsInfo prevWordsInfo, final String word) {
|
||||||
return getNgramProbability(prevWordsInfo, word) != NOT_A_PROBABILITY;
|
return getNgramProbability(prevWordsInfo, word) != NOT_A_PROBABILITY;
|
||||||
|
|
|
@ -273,6 +273,17 @@ static jint latinime_BinaryDictionary_getProbability(JNIEnv *env, jclass clazz,
|
||||||
return dictionary->getProbability(codePoints, wordLength);
|
return dictionary->getProbability(codePoints, wordLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static jint latinime_BinaryDictionary_getMaxProbabilityOfExactMatches(
|
||||||
|
JNIEnv *env, jclass clazz, jlong dict, jintArray word) {
|
||||||
|
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
|
||||||
|
if (!dictionary) return NOT_A_PROBABILITY;
|
||||||
|
const jsize wordLength = env->GetArrayLength(word);
|
||||||
|
int codePoints[wordLength];
|
||||||
|
env->GetIntArrayRegion(word, 0, wordLength, codePoints);
|
||||||
|
// TODO: Implement.
|
||||||
|
return NOT_A_PROBABILITY;
|
||||||
|
}
|
||||||
|
|
||||||
static jint latinime_BinaryDictionary_getBigramProbability(JNIEnv *env, jclass clazz,
|
static jint latinime_BinaryDictionary_getBigramProbability(JNIEnv *env, jclass clazz,
|
||||||
jlong dict, jintArray word0, jboolean isBeginningOfSentence, jintArray word1) {
|
jlong dict, jintArray word0, jboolean isBeginningOfSentence, jintArray word1) {
|
||||||
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
|
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
|
||||||
|
@ -633,6 +644,11 @@ static const JNINativeMethod sMethods[] = {
|
||||||
const_cast<char *>("(J[I)I"),
|
const_cast<char *>("(J[I)I"),
|
||||||
reinterpret_cast<void *>(latinime_BinaryDictionary_getProbability)
|
reinterpret_cast<void *>(latinime_BinaryDictionary_getProbability)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
const_cast<char *>("getMaxProbabilityOfExactMatchesNative"),
|
||||||
|
const_cast<char *>("(J[I)I"),
|
||||||
|
reinterpret_cast<void *>(latinime_BinaryDictionary_getMaxProbabilityOfExactMatches)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
const_cast<char *>("getBigramProbabilityNative"),
|
const_cast<char *>("getBigramProbabilityNative"),
|
||||||
const_cast<char *>("(J[IZ[I)I"),
|
const_cast<char *>("(J[IZ[I)I"),
|
||||||
|
|
Loading…
Reference in New Issue