Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de2b312c authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi
Browse files

Use same language weight for all dictionaries.

Bug: 8187060
Change-Id: Ib9d8a8aed2c141137c1bb3c748a89fb8216293e7
parent 35314af0
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -210,20 +210,22 @@ static void latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz,
        ASSERT(false);
        return;
    }

    float languageWeight;
    env->GetFloatArrayRegion(inOutLanguageWeight, 0, 1 /* len */, &languageWeight);
    SuggestionResults suggestionResults(MAX_RESULTS);
    if (givenSuggestOptions.isGesture() || inputSize > 0) {
        // TODO: Use SuggestionResults to return suggestions.
        dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates,
                times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints,
                prevWordCodePointsLength, &givenSuggestOptions, &suggestionResults);
                prevWordCodePointsLength, &givenSuggestOptions, languageWeight,
                &suggestionResults);
    } else {
        dictionary->getPredictions(prevWordCodePoints, prevWordCodePointsLength,
                &suggestionResults);
    }
    suggestionResults.outputSuggestions(env, outSuggestionCount, outCodePointsArray,
            outScoresArray, outSpaceIndicesArray, outTypesArray,
            outAutoCommitFirstWordConfidenceArray);
            outAutoCommitFirstWordConfidenceArray, inOutLanguageWeight);
}

static jint latinime_BinaryDictionary_getProbability(JNIEnv *env, jclass clazz, jlong dict,
+1 −0
Original line number Diff line number Diff line
@@ -309,6 +309,7 @@ static inline void prof_out(void) {
#define NOT_A_PROBABILITY (-1)
#define NOT_A_DICT_POS (S_INT_MIN)
#define NOT_A_TIMESTAMP (-1)
#define NOT_A_LANGUAGE_WEIGHT (-1.0f)

// A special value to mean the first word confidence makes no sense in this case,
// e.g. this is not a multi-word suggestion.
+3 −3
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ Dictionary::Dictionary(JNIEnv *env, DictionaryStructureWithBufferPolicy::Structu
void Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
        int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
        int inputSize, int *prevWordCodePoints, int prevWordLength,
        const SuggestOptions *const suggestOptions,
        const SuggestOptions *const suggestOptions, const float languageWeight,
        SuggestionResults *const outSuggestionResults) const {
    TimeKeeper::setCurrentTime();
    DicTraverseSession::initSessionInstance(
@@ -55,11 +55,11 @@ void Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession
    if (suggestOptions->isGesture()) {
        mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
                ycoordinates, times, pointerIds, inputCodePoints, inputSize,
                outSuggestionResults);
                languageWeight, outSuggestionResults);
    } else {
        mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
                ycoordinates, times, pointerIds, inputCodePoints, inputSize,
                outSuggestionResults);
                languageWeight, outSuggestionResults);
    }
    if (DEBUG_DICT) {
        outSuggestionResults->dumpSuggestions();
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ class Dictionary {
    void getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
            int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
            int inputSize, int *prevWordCodePoints, int prevWordLength,
            const SuggestOptions *const suggestOptions,
            const SuggestOptions *const suggestOptions, const float languageWeight,
            SuggestionResults *const outSuggestionResults) const;

    void getPredictions(const int *word, int length,
+4 −1
Original line number Diff line number Diff line
@@ -20,7 +20,8 @@ namespace latinime {

void SuggestionResults::outputSuggestions(JNIEnv *env, jintArray outSuggestionCount,
        jintArray outputCodePointsArray, jintArray outScoresArray, jintArray outSpaceIndicesArray,
        jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray) {
        jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray,
        jfloatArray outLanguageWeight) {
    int outputIndex = 0;
    while (!mSuggestedWords.empty()) {
        const SuggestedWord &suggestedWord = mSuggestedWords.top();
@@ -50,6 +51,7 @@ void SuggestionResults::outputSuggestions(JNIEnv *env, jintArray outSuggestionCo
        mSuggestedWords.pop();
    }
    env->SetIntArrayRegion(outSuggestionCount, 0 /* start */, 1 /* len */, &outputIndex);
    env->SetFloatArrayRegion(outLanguageWeight, 0 /* start */, 1 /* len */, &mLanguageWeight);
}

void SuggestionResults::addPrediction(const int *const codePoints, const int codePointCount,
@@ -94,6 +96,7 @@ void SuggestionResults::getSortedScores(int *const outScores) const {
}

void SuggestionResults::dumpSuggestions() const {
    AKLOGE("language weight: %f", mLanguageWeight);
    std::vector<SuggestedWord> suggestedWords;
    auto copyOfSuggestedWords = mSuggestedWords;
    while (!copyOfSuggestedWords.empty()) {
Loading