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

Commit 2ebe2009 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Make DicTraverseSession having suggest options."

parents b4b72d43 338ef650
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j
    const jsize numberOfOptions = env->GetArrayLength(suggestOptions);
    int options[numberOfOptions];
    env->GetIntArrayRegion(suggestOptions, 0, numberOfOptions, options);
    SuggestOptions givenOptions(options, numberOfOptions);
    SuggestOptions givenSuggestOptions(options, numberOfOptions);

    // Output values
    /* By the way, let's check the output array length here to make sure */
@@ -190,12 +190,11 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j
    memset(outputTypes, 0, sizeof(outputTypes));

    int count;
    if (givenOptions.isGesture() || inputSize > 0) {
    if (givenSuggestOptions.isGesture() || inputSize > 0) {
        count = dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates,
                times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints,
                prevWordCodePointsLength, commitPoint, givenOptions.isGesture(),
                givenOptions.useFullEditDistance(), outputCodePoints, scores,
                spaceIndices, outputTypes);
                prevWordCodePointsLength, commitPoint, &givenSuggestOptions, outputCodePoints,
                scores, spaceIndices, outputTypes);
    } else {
        count = dictionary->getBigrams(prevWordCodePoints, prevWordCodePointsLength,
                inputCodePoints, inputSize, outputCodePoints, scores, outputTypes);
+4 −2
Original line number Diff line number Diff line
@@ -34,12 +34,14 @@ static void latinime_initDicTraverseSession(JNIEnv *env, jclass clazz, jlong tra
    void *ts = reinterpret_cast<void *>(traverseSession);
    Dictionary *dict = reinterpret_cast<Dictionary *>(dictionary);
    if (!previousWord) {
        DicTraverseWrapper::initDicTraverseSession(ts, dict, 0, 0);
        DicTraverseWrapper::initDicTraverseSession(
                ts, dict, 0 /* prevWord */, 0 /* prevWordLength*/, 0 /* suggestOptions */);
        return;
    }
    int prevWord[previousWordLength];
    env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord);
    DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength);
    DicTraverseWrapper::initDicTraverseSession(
            ts, dict, prevWord, previousWordLength, 0 /* suggestOptions */);
}

static void latinime_releaseDicTraverseSession(JNIEnv *env, jclass clazz, jlong traverseSession) {
+1 −1
Original line number Diff line number Diff line
@@ -22,5 +22,5 @@ namespace latinime {
void *(*DicTraverseWrapper::sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring) = 0;
void (*DicTraverseWrapper::sDicTraverseSessionReleaseMethod)(void *) = 0;
void (*DicTraverseWrapper::sDicTraverseSessionInitMethod)(
        void *, const Dictionary *const, const int *, const int) = 0;
        void *, const Dictionary *const, const int *, const int, const SuggestOptions *const) = 0;
} // namespace latinime
+8 −4
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@

namespace latinime {
class Dictionary;
class SuggestOptions;
// TODO: Remove
class DicTraverseWrapper {
 public:
@@ -32,9 +33,11 @@ class DicTraverseWrapper {
        return 0;
    }
    static void initDicTraverseSession(void *traverseSession, const Dictionary *const dictionary,
            const int *prevWord, const int prevWordLength) {
            const int *prevWord, const int prevWordLength,
            const SuggestOptions *const suggestOptions) {
        if (sDicTraverseSessionInitMethod) {
            sDicTraverseSessionInitMethod(traverseSession, dictionary, prevWord, prevWordLength);
            sDicTraverseSessionInitMethod(
                    traverseSession, dictionary, prevWord, prevWordLength, suggestOptions);
        }
    }
    static void releaseDicTraverseSession(void *traverseSession) {
@@ -46,7 +49,8 @@ class DicTraverseWrapper {
        sDicTraverseSessionFactoryMethod = factoryMethod;
    }
    static void setTraverseSessionInitMethod(
            void (*initMethod)(void *, const Dictionary *const, const int *, const int)) {
            void (*initMethod)(void *, const Dictionary *const, const int *, const int,
                    const SuggestOptions *const)) {
        sDicTraverseSessionInitMethod = initMethod;
    }
    static void setTraverseSessionReleaseMethod(void (*releaseMethod)(void *)) {
@@ -57,7 +61,7 @@ class DicTraverseWrapper {
    DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper);
    static void *(*sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring);
    static void (*sDicTraverseSessionInitMethod)(
            void *, const Dictionary *const, const int *, const int);
            void *, const Dictionary *const, const int *, const int, const SuggestOptions *const);
    static void (*sDicTraverseSessionReleaseMethod)(void *);
};
} // namespace latinime
+9 −8
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include "binary_format.h"
#include "defines.h"
#include "dic_traverse_wrapper.h"
#include "suggest_options.h"
#include "suggest/core/suggest.h"
#include "suggest/policyimpl/gesture/gesture_suggest_policy_factory.h"
#include "suggest/policyimpl/typing/typing_suggest_policy_factory.h"
@@ -53,13 +54,13 @@ Dictionary::~Dictionary() {

int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSession,
        int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
        int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint, bool isGesture,
        bool useFullEditDistance, int *outWords, int *frequencies, int *spaceIndices,
        int *outputTypes) const {
        int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint,
        const SuggestOptions *const suggestOptions, int *outWords, int *frequencies,
        int *spaceIndices, int *outputTypes) const {
    int result = 0;
    if (isGesture) {
    if (suggestOptions->isGesture()) {
        DicTraverseWrapper::initDicTraverseSession(
                traverseSession, this, prevWordCodePoints, prevWordLength);
                traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
        result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
                ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords,
                frequencies, spaceIndices, outputTypes);
@@ -70,7 +71,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi
    } else {
        if (USE_SUGGEST_INTERFACE_FOR_TYPING) {
            DicTraverseWrapper::initDicTraverseSession(
                    traverseSession, this, prevWordCodePoints, prevWordLength);
                    traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
            result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
                    ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint,
                    outWords, frequencies, spaceIndices, outputTypes);
@@ -84,8 +85,8 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi
            mBigramDictionary->fillBigramAddressToProbabilityMapAndFilter(prevWordCodePoints,
                    prevWordLength, &bigramMap, bigramFilter);
            result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, ycoordinates,
                    inputCodePoints, inputSize, &bigramMap, bigramFilter, useFullEditDistance,
                    outWords, frequencies, outputTypes);
                    inputCodePoints, inputSize, &bigramMap, bigramFilter,
                    suggestOptions->useFullEditDistance(), outWords, frequencies, outputTypes);
            return result;
        }
    }
Loading