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

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

Merge "Cleanup gesture code overlay"

parents c5e911c0 deb09872
Loading
Loading
Loading
Loading
+2 −43
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ LATIN_IME_CORE_SRC_FILES := \
    proximity_info.cpp \
    proximity_info_state.cpp \
    unigram_dictionary.cpp \
    gesture/incremental_decoder_interface.cpp
    gesture/gesture_decoder_wrapper.cpp

LOCAL_SRC_FILES := \
    $(LATIN_IME_JNI_SRC_FILES) \
@@ -78,49 +78,8 @@ include $(BUILD_STATIC_LIBRARY)
######################################
include $(CLEAR_VARS)

LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) \
    $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/, gesture gesture/impl)

LOCAL_CFLAGS += -Werror -Wall

# To suppress compiler warnings for unused variables/functions used for debug features etc.
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function

LATIN_IME_GESTURE_IMPL_SRC_FILES := \
    gesture/impl/gesture_decoder_impl.cpp \
    gesture/impl/incremental_decoder_impl.cpp \
    gesture/impl/token_beam_impl.cpp \
    gesture/impl/token_impl.cpp

LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_GESTURE_IMPL_SRC_FILES))

ifeq ($(FLAG_DO_PROFILE), true)
    $(warning Making profiling version of native library)
    LOCAL_CFLAGS += -DFLAG_DO_PROFILE
else # FLAG_DO_PROFILE
ifeq ($(FLAG_DBG), true)
    $(warning Making debug version of native library)
    LOCAL_CFLAGS += -DFLAG_DBG
endif # FLAG_DBG
endif # FLAG_DO_PROFILE

# TODO: Can remove this static library from AOSP completely?
LOCAL_MODULE := libjni_latinime_gesture_impl_aosp_static
LOCAL_MODULE_TAGS := optional

ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
include external/stlport/libstlport.mk
else # In the NDK build system
LOCAL_C_INCLUDES += external/stlport/stlport bionic
endif

include $(BUILD_STATIC_LIBRARY)
######################################
include $(CLEAR_VARS)

# All code in LOCAL_WHOLE_STATIC_LIBRARIES will be built into this shared library.
LOCAL_WHOLE_STATIC_LIBRARIES := \
    libjni_latinime_common_static libjni_latinime_gesture_impl_aosp_static
LOCAL_WHOLE_STATIC_LIBRARIES := libjni_latinime_common_static

ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
LOCAL_SHARED_LIBRARIES := libstlport
+2 −3
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
#include "binary_format.h"
#include "defines.h"
#include "dictionary.h"
#include "incremental_decoder_interface.h"
#include "gesture_decoder_wrapper.h"

namespace latinime {

@@ -44,8 +44,7 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
    mUnigramDictionary = new UnigramDictionary(mDict + headerSize, typedLetterMultiplier,
            fullWordMultiplier, maxWordLength, maxWords, options);
    mBigramDictionary = new BigramDictionary(mDict + headerSize, maxWordLength);
    mGestureDecoder = IncrementalDecoderInterface::getGestureDecoderInstance(maxWordLength,
            maxWords);
    mGestureDecoder = new GestureDecoderWrapper(maxWordLength, maxWords);
    mGestureDecoder->setDict(mUnigramDictionary, mBigramDictionary,
            mDict + headerSize /* dict root */, 0 /* root pos */);
}
+2 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ class Dictionary {
            result = mGestureDecoder->getSuggestions(proximityInfo, xcoordinates, ycoordinates,
                    times, pointerIds, codes, codesSize, commitPoint,
                    outWords, frequencies, spaceIndices);
            return result;
        } else {
            std::map<int, int> bigramMap;
            uint8_t bigramFilter[BIGRAM_FILTER_BYTE_SIZE];
@@ -53,9 +54,9 @@ class Dictionary {
            result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates,
                    ycoordinates, codes, codesSize, &bigramMap, bigramFilter,
                    useFullEditDistance, outWords, frequencies);
        }
            return result;
        }
    }

    int getBigrams(const int32_t *word, int length, int *codes, int codesSize,
            unsigned short *outWords, int *frequencies, int maxWordLength, int maxBigrams) const {
+3 −1
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@
 * limitations under the License.
 */

#include "token_impl.h"
#include "gesture_decoder_wrapper.h"

namespace latinime {
    IncrementalDecoderInterface *
            (*GestureDecoderWrapper::sGestureDecoderFactoryMethod)(int, int) = 0;
} // namespace latinime
+91 −0
Original line number Diff line number Diff line
@@ -14,9 +14,10 @@
 * limitations under the License.
 */

#ifndef LATINIME_INCREMENTAL_DECODER_IMPL_H
#define LATINIME_INCREMENTAL_DECODER_IMPL_H
#ifndef LATINIME_GESTURE_DECODER_WRAPPER_H
#define LATINIME_GESTURE_DECODER_WRAPPER_H

#include <stdint.h>
#include "defines.h"
#include "incremental_decoder_interface.h"

@@ -24,23 +25,67 @@ namespace latinime {

class UnigramDictionary;
class BigramDictionary;
class ProximityInfo;

class IncrementalDecoderImpl : public IncrementalDecoderInterface {
class GestureDecoderWrapper : public IncrementalDecoderInterface {
 public:
    IncrementalDecoderImpl(int maxWordLength, int maxWords) { };
    void setDict(const UnigramDictionary *dict, const BigramDictionary *bigram,
            const uint8_t *dictRoot, int rootPos) { };
    void setPrevWord(const int32_t *prevWord, int prevWordLength) { };
    void reset() { };
    GestureDecoderWrapper(const int maxWordLength, const int maxWords) {
        mIncrementalDecoderInterface = getGestureDecoderInstance(maxWordLength, maxWords);
    }

    virtual ~GestureDecoderWrapper() {
        delete mIncrementalDecoderInterface;
    }

    int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
            int *pointerIds, int *codes, int inputSize, int commitPoint,
            unsigned short *outWords, int *frequencies, int *outputIndices) {
        if (!mIncrementalDecoderInterface) {
            return 0;
        }
        return mIncrementalDecoderInterface->getSuggestions(
                pInfo, inputXs, inputYs, times, pointerIds, codes, inputSize, commitPoint,
                outWords, frequencies, outputIndices);
    }

    void reset() {
        if (!mIncrementalDecoderInterface) {
            return;
        }
        mIncrementalDecoderInterface->reset();
    }

    void setDict(const UnigramDictionary *dict, const BigramDictionary *bigram,
            const uint8_t *dictRoot, int rootPos) {
        if (!mIncrementalDecoderInterface) {
            return;
        }
        mIncrementalDecoderInterface->setDict(dict, bigram, dictRoot, rootPos);
    }

    void setPrevWord(const int32_t *prevWord, int prevWordLength) {
        if (!mIncrementalDecoderInterface) {
            return;
        }
        mIncrementalDecoderInterface->setPrevWord(prevWord, prevWordLength);
    }

    static void setGestureDecoderFactoryMethod(
            IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
        sGestureDecoderFactoryMethod = factoryMethod;
    }

 private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoderImpl);
    DISALLOW_COPY_AND_ASSIGN(GestureDecoderWrapper);
    static IncrementalDecoderInterface *getGestureDecoderInstance(int maxWordLength, int maxWords) {
        if (sGestureDecoderFactoryMethod) {
            return sGestureDecoderFactoryMethod(maxWordLength, maxWords);
        }
        return 0;
    }

    static IncrementalDecoderInterface *(*sGestureDecoderFactoryMethod)(int, int);
    IncrementalDecoderInterface *mIncrementalDecoderInterface;
};
} // namespace latinime
#endif // LATINIME_INCREMENTAL_DECODER_IMPL_H
#endif // LATINIME_GESTURE_DECODER_WRAPPER_H
Loading