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

Commit f5e18e99 authored by Satoshi Kataoka's avatar Satoshi Kataoka Committed by Android (Google) Code Review
Browse files

Merge "Cleanup suggest interface"

parents 370461ef e67ede12
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ LOCAL_C_INCLUDES += \
    $(LATIN_IME_SRC_FULLPATH_DIR)/suggest \
    $(LATIN_IME_SRC_FULLPATH_DIR)/suggest/core \
    $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/suggest/core/, dicnode dictionary policy session) \
    $(LATIN_IME_SRC_FULLPATH_DIR)/suggest/policyimpl/typing
    $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/suggest/policyimpl/, gesture typing)

LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \
    -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls -Wno-system-headers
@@ -71,13 +71,12 @@ LATIN_IME_CORE_SRC_FILES := \
    suggest/core/policy/weighting.cpp \
    suggest/core/session/dic_traverse_session.cpp \
    suggest/core/suggest.cpp \
    suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \
    suggest/policyimpl/typing/scoring_params.cpp \
    suggest/policyimpl/typing/typing_scoring.cpp \
    suggest/policyimpl/typing/typing_suggest_policy.cpp \
    suggest/policyimpl/typing/typing_traversal.cpp \
    suggest/policyimpl/typing/typing_weighting.cpp \
    suggest/gesture_suggest.cpp \
    suggest/typing_suggest.cpp
    suggest/policyimpl/typing/typing_weighting.cpp

LOCAL_SRC_FILES := \
    $(LATIN_IME_JNI_SRC_FILES) \
+5 −4
Original line number Diff line number Diff line
@@ -24,8 +24,9 @@
#include "defines.h"
#include "dictionary.h"
#include "dic_traverse_wrapper.h"
#include "gesture_suggest.h"
#include "typing_suggest.h"
#include "gesture_suggest_policy_factory.h"
#include "suggest.h"
#include "typing_suggest_policy_factory.h"
#include "unigram_dictionary.h"

namespace latinime {
@@ -36,8 +37,8 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust)
          mDictSize(dictSize), mMmapFd(mmapFd), mDictBufAdjust(dictBufAdjust),
          mUnigramDictionary(new UnigramDictionary(mOffsetDict, BinaryFormat::getFlags(mDict))),
          mBigramDictionary(new BigramDictionary(mOffsetDict)),
          mGestureSuggest(new GestureSuggest()),
          mTypingSuggest(new TypingSuggest()) {
          mGestureSuggest(new Suggest(GestureSuggestPolicyFactory::getGestureSuggestPolicy())),
          mTypingSuggest(new Suggest(TypingSuggestPolicyFactory::getTypingSuggestPolicy())) {
}

Dictionary::~Dictionary() {
+2 −6
Original line number Diff line number Diff line
@@ -14,12 +14,8 @@
 * limitations under the License.
 */

#include "typing_suggest.h"
#include "gesture_suggest_policy_factory.h"

namespace latinime {
    SuggestInterface *(*TypingSuggest::sTypingSuggestFactoryMethod)() = 0;

    TypingSuggest::~TypingSuggest() {
        delete mSuggestInterface;
    }
    const SuggestPolicy *(*GestureSuggestPolicyFactory::sGestureSuggestFactoryMethod)() = 0;
} // namespace latinime
+44 −0
Original line number Diff line number Diff line
@@ -14,48 +14,31 @@
 * limitations under the License.
 */

#ifndef LATINIME_GESTURE_SUGGEST_H
#define LATINIME_GESTURE_SUGGEST_H
#ifndef LATINIME_GESTURE_SUGGEST_POLICY_FACTORY_H
#define LATINIME_GESTURE_SUGGEST_POLICY_FACTORY_H

#include "defines.h"
#include "suggest_interface.h"

namespace latinime {

class ProximityInfo;
class SuggestPolicy;

class GestureSuggest : public SuggestInterface {
class GestureSuggestPolicyFactory {
 public:
    GestureSuggest() : mSuggestInterface(getGestureSuggestInstance()) {}

    virtual ~GestureSuggest();

    int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
            int *times, int *pointerIds, int *inputCodePoints, int inputSize, int commitPoint,
            int *outWords, int *frequencies, int *outputIndices, int *outputTypes) const {
        if (!mSuggestInterface) {
            return 0;
        }
        return mSuggestInterface->getSuggestions(pInfo, traverseSession, inputXs, inputYs, times,
                pointerIds, inputCodePoints, inputSize, commitPoint, outWords, frequencies,
                outputIndices, outputTypes);
    }

    static void setGestureSuggestFactoryMethod(SuggestInterface *(*factoryMethod)()) {
    static void setGestureSuggestPolicyFactoryMethod(const SuggestPolicy *(*factoryMethod)()) {
        sGestureSuggestFactoryMethod = factoryMethod;
    }

 private:
    DISALLOW_COPY_AND_ASSIGN(GestureSuggest);
    static SuggestInterface *getGestureSuggestInstance() {
    static const SuggestPolicy *getGestureSuggestPolicy() {
        if (!sGestureSuggestFactoryMethod) {
            return 0;
        }
        return sGestureSuggestFactoryMethod();
    }

    static SuggestInterface *(*sGestureSuggestFactoryMethod)();
    SuggestInterface *mSuggestInterface;
 private:
    DISALLOW_COPY_AND_ASSIGN(GestureSuggestPolicyFactory);
    static const SuggestPolicy *(*sGestureSuggestFactoryMethod)();
};
} // namespace latinime
#endif // LATINIME_GESTURE_SUGGEST_H
#endif // LATINIME_GESTURE_SUGGEST_POLICY_FACTORY_H
Loading