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

Commit e67ede12 authored by Satoshi Kataoka's avatar Satoshi Kataoka
Browse files

Cleanup suggest interface

Change-Id: Ibe334a1d3ab3af69acfa64412c80f0ea24cd2c46
parent e9f69e16
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