aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/res/values-nb/strings.xml2
-rw-r--r--java/src/com/android/inputmethod/latin/UserBinaryDictionary.java12
-rw-r--r--native/jni/Android.mk19
-rw-r--r--native/jni/src/dictionary.cpp5
-rw-r--r--native/jni/src/dictionary.h4
-rw-r--r--native/jni/src/gesture/gesture_decoder.h37
-rw-r--r--native/jni/src/gesture/impl/gesture_decoder_impl.cpp21
-rw-r--r--native/jni/src/gesture/impl/gesture_decoder_impl.h8
-rw-r--r--native/jni/src/gesture/impl/incremental_decoder_impl.cpp21
-rw-r--r--native/jni/src/gesture/impl/incremental_decoder_impl.h23
-rw-r--r--native/jni/src/gesture/impl/token_beam_impl.cpp3
-rw-r--r--native/jni/src/gesture/impl/token_beam_impl.h1
-rw-r--r--native/jni/src/gesture/impl/token_impl.cpp3
-rw-r--r--native/jni/src/gesture/impl/token_impl.h1
-rw-r--r--native/jni/src/gesture/incremental_decoder.h37
-rw-r--r--native/jni/src/gesture/incremental_decoder_interface.cpp (renamed from native/jni/src/gesture/build_check.cpp)9
-rw-r--r--native/jni/src/gesture/incremental_decoder_interface.h39
17 files changed, 126 insertions, 119 deletions
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 3f27ef9db..bdde36ae8 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -60,7 +60,7 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Omfattende"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Veldig aggressiv"</string>
- <string name="bigram_prediction" msgid="5809665643352206540">"Forslag til rettelser av neste ord"</string>
+ <string name="bigram_prediction" msgid="5809665643352206540">"Forslag til neste ord"</string>
<string name="bigram_prediction_summary" msgid="3253961591626441019">"Basert på det forrige ordet"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Lagret"</string>
<string name="label_go_key" msgid="1635148082137219148">"Utfør"</string>
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
index 8cef6fa20..60e6fa127 100644
--- a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -34,7 +34,10 @@ import java.util.Arrays;
*/
public class UserBinaryDictionary extends ExpandableBinaryDictionary {
- // TODO: use Words.SHORTCUT when it's public in the SDK
+ // The user dictionary provider uses an empty string to mean "all languages".
+ private static final String USER_DICTIONARY_ALL_LANGUAGES = "";
+
+ // TODO: use Words.SHORTCUT when we target JellyBean or above
final static String SHORTCUT = "shortcut";
private static final String[] PROJECTION_QUERY;
static {
@@ -71,7 +74,12 @@ public class UserBinaryDictionary extends ExpandableBinaryDictionary {
final boolean alsoUseMoreRestrictiveLocales) {
super(context, getFilenameWithLocale(NAME, locale), Dictionary.TYPE_USER);
if (null == locale) throw new NullPointerException(); // Catch the error earlier
- mLocale = locale;
+ if (SubtypeLocale.NO_LANGUAGE.equals(locale)) {
+ // If we don't have a locale, insert into the "all locales" user dictionary.
+ mLocale = USER_DICTIONARY_ALL_LANGUAGES;
+ } else {
+ mLocale = locale;
+ }
mAlsoUseMoreRestrictiveLocales = alsoUseMoreRestrictiveLocales;
// Perform a managed query. The Activity will handle closing and re-querying the cursor
// when needed.
diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index df98680ca..31feb9510 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -26,8 +26,7 @@ include $(CLEAR_VARS)
LATIN_IME_SRC_DIR := src
LATIN_IME_SRC_FULLPATH_DIR := $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
-LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) \
- $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/, gesture gesture/impl)
+LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) $(LATIN_IME_SRC_FULLPATH_DIR)/gesture
LOCAL_CFLAGS += -Werror -Wall
@@ -50,11 +49,11 @@ LATIN_IME_CORE_SRC_FILES := \
proximity_info.cpp \
proximity_info_state.cpp \
unigram_dictionary.cpp \
- gesture/build_check.cpp
+ gesture/incremental_decoder_interface.cpp
LOCAL_SRC_FILES := \
$(LATIN_IME_JNI_SRC_FILES) \
- $(addprefix $(LATIN_IME_SRC_DIR)/,$(LATIN_IME_CORE_SRC_FILES))
+ $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES))
ifeq ($(FLAG_DO_PROFILE), true)
$(warning Making profiling version of native library)
@@ -66,7 +65,7 @@ ifeq ($(FLAG_DBG), true)
endif # FLAG_DBG
endif # FLAG_DO_PROFILE
-LOCAL_MODULE := libjni_latinime_static
+LOCAL_MODULE := libjni_latinime_common_static
LOCAL_MODULE_TAGS := optional
ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
@@ -80,7 +79,7 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LATIN_IME_SRC_FULLPATH_DIR) \
- $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/, gesture gesture/impl gesture/impl/header)
+ $(addprefix $(LATIN_IME_SRC_FULLPATH_DIR)/, gesture gesture/impl)
LOCAL_CFLAGS += -Werror -Wall
@@ -93,7 +92,7 @@ LATIN_IME_GESTURE_IMPL_SRC_FILES := \
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))
+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)
@@ -105,7 +104,8 @@ ifeq ($(FLAG_DBG), true)
endif # FLAG_DBG
endif # FLAG_DO_PROFILE
-LOCAL_MODULE := libjni_latinime_gesture_impl_static
+# 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
@@ -119,7 +119,8 @@ 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_static libjni_latinime_gesture_impl_static
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+ libjni_latinime_common_static libjni_latinime_gesture_impl_aosp_static
ifdef HISTORICAL_NDK_VERSIONS_ROOT # In the platform build system
LOCAL_SHARED_LIBRARIES := libstlport
diff --git a/native/jni/src/dictionary.cpp b/native/jni/src/dictionary.cpp
index 10ea9fe06..60f3c949b 100644
--- a/native/jni/src/dictionary.cpp
+++ b/native/jni/src/dictionary.cpp
@@ -22,6 +22,7 @@
#include "binary_format.h"
#include "defines.h"
#include "dictionary.h"
+#include "incremental_decoder_interface.h"
namespace latinime {
@@ -43,7 +44,8 @@ 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 = new GestureDecoder(maxWordLength, maxWords);
+ mGestureDecoder = IncrementalDecoderInterface::getGestureDecoderInstance(maxWordLength,
+ maxWords);
mGestureDecoder->setDict(mUnigramDictionary, mBigramDictionary,
mDict + headerSize /* dict root */, 0 /* root pos */);
}
@@ -51,6 +53,7 @@ Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust,
Dictionary::~Dictionary() {
delete mUnigramDictionary;
delete mBigramDictionary;
+ delete mGestureDecoder;
}
int Dictionary::getFrequency(const int32_t *word, int length) const {
diff --git a/native/jni/src/dictionary.h b/native/jni/src/dictionary.h
index 8b4769431..2b0619c46 100644
--- a/native/jni/src/dictionary.h
+++ b/native/jni/src/dictionary.h
@@ -22,7 +22,7 @@
#include "bigram_dictionary.h"
#include "char_utils.h"
#include "defines.h"
-#include "gesture/gesture_decoder.h"
+#include "incremental_decoder_interface.h"
#include "proximity_info.h"
#include "unigram_dictionary.h"
#include "words_priority_queue_pool.h"
@@ -87,7 +87,7 @@ class Dictionary {
const UnigramDictionary *mUnigramDictionary;
const BigramDictionary *mBigramDictionary;
- GestureDecoder *mGestureDecoder;
+ IncrementalDecoderInterface *mGestureDecoder;
};
// public static utility methods
diff --git a/native/jni/src/gesture/gesture_decoder.h b/native/jni/src/gesture/gesture_decoder.h
deleted file mode 100644
index 8e79555bd..000000000
--- a/native/jni/src/gesture/gesture_decoder.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_GESTURE_DECODER_H
-#define LATINIME_GESTURE_DECODER_H
-
-#include "defines.h"
-#include "gesture_decoder_impl.h"
-
-namespace latinime {
-
-class GestureDecoder : public GestureDecoderImpl {
-
- public:
- GestureDecoder(int maxWordLength, int maxWords) :
- GestureDecoderImpl(maxWordLength, maxWords) {
- }
-
- private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoder);
-};
-} // namespace latinime
-
-#endif // LATINIME_INCREMENTAL_DECODER_H
diff --git a/native/jni/src/gesture/impl/gesture_decoder_impl.cpp b/native/jni/src/gesture/impl/gesture_decoder_impl.cpp
index 59937a4d8..035850ead 100644
--- a/native/jni/src/gesture/impl/gesture_decoder_impl.cpp
+++ b/native/jni/src/gesture/impl/gesture_decoder_impl.cpp
@@ -15,7 +15,26 @@
*/
#include "gesture_decoder_impl.h"
+#include "incremental_decoder_interface.h"
namespace latinime {
+
+// A factory method for GestureDecoderImpl
+static IncrementalDecoderInterface *getDecoderInstance(int maxWordLength, int maxWords) {
+ return new GestureDecoderImpl(maxWordLength, maxWords);
+}
+
+// An ad-hoc internal class to register the factory method defined above
+class GestureDecoderFactoryRegisterer {
+ public:
+ GestureDecoderFactoryRegisterer() {
+ IncrementalDecoderInterface::setGestureDecoderFactoryMethod(getDecoderInstance);
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(GestureDecoderFactoryRegisterer);
};
-// namespace latinime
+
+// To invoke the GestureDecoderFactoryRegisterer constructor in the global constructor
+// Not sure, but can be static?
+GestureDecoderFactoryRegisterer gestureDecoderFactoryRegisterer;
+} // namespace latinime
diff --git a/native/jni/src/gesture/impl/gesture_decoder_impl.h b/native/jni/src/gesture/impl/gesture_decoder_impl.h
index 0ca89941c..6de807b39 100644
--- a/native/jni/src/gesture/impl/gesture_decoder_impl.h
+++ b/native/jni/src/gesture/impl/gesture_decoder_impl.h
@@ -18,15 +18,14 @@
#define LATINIME_GESTURE_DECODER_IMPL_H
#include "defines.h"
-#include "incremental_decoder.h"
+#include "incremental_decoder_impl.h"
namespace latinime {
-class GestureDecoderImpl : public IncrementalDecoder {
-
+class GestureDecoderImpl : public IncrementalDecoderImpl {
public:
GestureDecoderImpl(int maxWordLength, int maxWords) :
- IncrementalDecoder(maxWordLength, maxWords) {
+ IncrementalDecoderImpl(maxWordLength, maxWords) {
}
int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
@@ -39,5 +38,4 @@ class GestureDecoderImpl : public IncrementalDecoder {
DISALLOW_IMPLICIT_CONSTRUCTORS(GestureDecoderImpl);
};
} // namespace latinime
-
#endif // LATINIME_GESTURE_DECODER_IMPL_H
diff --git a/native/jni/src/gesture/impl/incremental_decoder_impl.cpp b/native/jni/src/gesture/impl/incremental_decoder_impl.cpp
index b7e8b3bd1..f2b76ed26 100644
--- a/native/jni/src/gesture/impl/incremental_decoder_impl.cpp
+++ b/native/jni/src/gesture/impl/incremental_decoder_impl.cpp
@@ -15,7 +15,26 @@
*/
#include "incremental_decoder_impl.h"
+#include "incremental_decoder_interface.h"
namespace latinime {
+
+// A factory method for IncrementalDecoderImpl
+static IncrementalDecoderInterface *getDecoderInstance(int maxWordLength, int maxWords) {
+ return new IncrementalDecoderImpl(maxWordLength, maxWords);
+}
+
+// An ad-hoc internal class to register the factory method defined above
+class IncrementalDecoderFactoryRegisterer {
+ public:
+ IncrementalDecoderFactoryRegisterer() {
+ IncrementalDecoderInterface::setIncrementalDecoderFactoryMethod(getDecoderInstance);
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(IncrementalDecoderFactoryRegisterer);
};
-// namespace latinime
+
+// To invoke the IncrementalDecoderFactoryRegisterer constructor in the global constructor
+// Not sure, but can be static?
+IncrementalDecoderFactoryRegisterer incrementalDecoderFactoryRegisterer;
+} // namespace latinime
diff --git a/native/jni/src/gesture/impl/incremental_decoder_impl.h b/native/jni/src/gesture/impl/incremental_decoder_impl.h
index 84121e8e2..50ed14303 100644
--- a/native/jni/src/gesture/impl/incremental_decoder_impl.h
+++ b/native/jni/src/gesture/impl/incremental_decoder_impl.h
@@ -17,25 +17,30 @@
#ifndef LATINIME_INCREMENTAL_DECODER_IMPL_H
#define LATINIME_INCREMENTAL_DECODER_IMPL_H
-#include "bigram_dictionary.h"
#include "defines.h"
#include "incremental_decoder_interface.h"
-#include "unigram_dictionary.h"
namespace latinime {
-class IncrementalDecoderImpl : IncrementalDecoderInterface {
+class UnigramDictionary;
+class BigramDictionary;
+class IncrementalDecoderImpl : 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() { };
+ 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() { };
+
+ 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) {
+ return 0;
+ }
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoderImpl);
};
} // namespace latinime
-
#endif // LATINIME_INCREMENTAL_DECODER_IMPL_H
diff --git a/native/jni/src/gesture/impl/token_beam_impl.cpp b/native/jni/src/gesture/impl/token_beam_impl.cpp
index b2b73c25c..ffac4dd39 100644
--- a/native/jni/src/gesture/impl/token_beam_impl.cpp
+++ b/native/jni/src/gesture/impl/token_beam_impl.cpp
@@ -17,5 +17,4 @@
#include "token_beam_impl.h"
namespace latinime {
-};
-// namespace latinime
+} // namespace latinime
diff --git a/native/jni/src/gesture/impl/token_beam_impl.h b/native/jni/src/gesture/impl/token_beam_impl.h
index 332505697..50de9258b 100644
--- a/native/jni/src/gesture/impl/token_beam_impl.h
+++ b/native/jni/src/gesture/impl/token_beam_impl.h
@@ -26,5 +26,4 @@ class TokenBeamImpl {
DISALLOW_IMPLICIT_CONSTRUCTORS(TokenBeamImpl);
};
} // namespace latinime
-
#endif // LATINIME_TOKEN_BEAM_IMPL_H
diff --git a/native/jni/src/gesture/impl/token_impl.cpp b/native/jni/src/gesture/impl/token_impl.cpp
index c7efeb188..fa667f03a 100644
--- a/native/jni/src/gesture/impl/token_impl.cpp
+++ b/native/jni/src/gesture/impl/token_impl.cpp
@@ -17,5 +17,4 @@
#include "token_impl.h"
namespace latinime {
-};
-// namespace latinime
+} // namespace latinime
diff --git a/native/jni/src/gesture/impl/token_impl.h b/native/jni/src/gesture/impl/token_impl.h
index 0ed7d0020..5f2368a93 100644
--- a/native/jni/src/gesture/impl/token_impl.h
+++ b/native/jni/src/gesture/impl/token_impl.h
@@ -26,5 +26,4 @@ struct TokenImpl {
DISALLOW_IMPLICIT_CONSTRUCTORS(TokenImpl);
};
} // namespace latinime
-
#endif // LATINIME_TOKEN_IMPL_H
diff --git a/native/jni/src/gesture/incremental_decoder.h b/native/jni/src/gesture/incremental_decoder.h
deleted file mode 100644
index fe935529f..000000000
--- a/native/jni/src/gesture/incremental_decoder.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_INCREMENTAL_DECODER_H
-#define LATINIME_INCREMENTAL_DECODER_H
-
-#include "defines.h"
-#include "incremental_decoder_impl.h"
-
-namespace latinime {
-
-class IncrementalDecoder : public IncrementalDecoderImpl {
-
- public:
- IncrementalDecoder(int maxWordLength, int maxWords) :
- IncrementalDecoderImpl(maxWordLength, maxWords) {
- }
-
- private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalDecoder);
-};
-} // namespace latinime
-
-#endif // LATINIME_INCREMENTAL_DECODER_H
diff --git a/native/jni/src/gesture/build_check.cpp b/native/jni/src/gesture/incremental_decoder_interface.cpp
index 8ec94f593..9fb2a17aa 100644
--- a/native/jni/src/gesture/build_check.cpp
+++ b/native/jni/src/gesture/incremental_decoder_interface.cpp
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-#include "gesture_decoder.h"
+#include "incremental_decoder_interface.h"
namespace latinime {
-};
-// namespace latinime
+ IncrementalDecoderInterface *
+ (*IncrementalDecoderInterface::sGestureDecoderFactoryMethod)(int, int) = 0;
+ IncrementalDecoderInterface *
+ (*IncrementalDecoderInterface::sIncrementalDecoderFactoryMethod)(int, int) = 0;
+} // namespace latinime
diff --git a/native/jni/src/gesture/incremental_decoder_interface.h b/native/jni/src/gesture/incremental_decoder_interface.h
index 565f89c90..1f92affb6 100644
--- a/native/jni/src/gesture/incremental_decoder_interface.h
+++ b/native/jni/src/gesture/incremental_decoder_interface.h
@@ -17,15 +17,16 @@
#ifndef LATINIME_INCREMENTAL_DECODER_INTERFACE_H
#define LATINIME_INCREMENTAL_DECODER_INTERFACE_H
-#include "bigram_dictionary.h"
+#include <stdint.h>
#include "defines.h"
-#include "proximity_info.h"
-#include "unigram_dictionary.h"
namespace latinime {
-class IncrementalDecoderInterface {
+class UnigramDictionary;
+class BigramDictionary;
+class ProximityInfo;
+class IncrementalDecoderInterface {
public:
virtual int getSuggestions(ProximityInfo *pInfo, int *inputXs, int *inputYs, int *times,
int *pointerIds, int *codes, int inputSize, int commitPoint,
@@ -35,7 +36,35 @@ class IncrementalDecoderInterface {
const uint8_t *dictRoot, int rootPos) = 0;
virtual void setPrevWord(const int32_t *prevWord, int prevWordLength) = 0;
virtual ~IncrementalDecoderInterface() { };
+
+ static IncrementalDecoderInterface *getGestureDecoderInstance(int maxWordLength, int maxWords) {
+ if (sGestureDecoderFactoryMethod) {
+ return sGestureDecoderFactoryMethod(maxWordLength, maxWords);
+ }
+ return 0;
+ }
+
+ static IncrementalDecoderInterface *getIncrementalDecoderInstance(int maxWordLength,
+ int maxWords) {
+ if (sIncrementalDecoderFactoryMethod) {
+ return sIncrementalDecoderFactoryMethod(maxWordLength, maxWords);
+ }
+ return 0;
+ }
+
+ static void setGestureDecoderFactoryMethod(
+ IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
+ sGestureDecoderFactoryMethod = factoryMethod;
+ }
+
+ static void setIncrementalDecoderFactoryMethod(
+ IncrementalDecoderInterface *(*factoryMethod)(int, int)) {
+ sIncrementalDecoderFactoryMethod = factoryMethod;
+ }
+
+ private:
+ static IncrementalDecoderInterface *(*sGestureDecoderFactoryMethod)(int, int);
+ static IncrementalDecoderInterface *(*sIncrementalDecoderFactoryMethod)(int, int);
};
} // namespace latinime
-
#endif // LATINIME_INCREMENTAL_DECODER_INTERFACE_H