aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/dictionary.cpp
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-04-10 19:35:32 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-04-10 19:35:32 -0700
commite90df24386ca22689abccaacf70a087912c00343 (patch)
treefec49353f47879450ebab7ca30230d2335b07c16 /native/jni/src/dictionary.cpp
parentda90ffe048850df35a1a8d159d6b50eb2c14bda6 (diff)
parent481412bb44d6c3b971b28b490babbcbad4283003 (diff)
downloadlatinime-e90df24386ca22689abccaacf70a087912c00343.tar.gz
latinime-e90df24386ca22689abccaacf70a087912c00343.tar.xz
latinime-e90df24386ca22689abccaacf70a087912c00343.zip
am 481412bb: am f3633e9b: Merge "Add flag to turn on new suggest implementation for typing"
* commit '481412bb44d6c3b971b28b490babbcbad4283003': Add flag to turn on new suggest implementation for typing
Diffstat (limited to 'native/jni/src/dictionary.cpp')
-rw-r--r--native/jni/src/dictionary.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/native/jni/src/dictionary.cpp b/native/jni/src/dictionary.cpp
index 6deab36b6..12e872453 100644
--- a/native/jni/src/dictionary.cpp
+++ b/native/jni/src/dictionary.cpp
@@ -16,6 +16,7 @@
#define LOG_TAG "LatinIME: dictionary.cpp"
+#include <map> // TODO: remove
#include <stdint.h>
#include "bigram_dictionary.h"
@@ -24,6 +25,7 @@
#include "dictionary.h"
#include "dic_traverse_wrapper.h"
#include "gesture_suggest.h"
+#include "typing_suggest.h"
#include "unigram_dictionary.h"
namespace latinime {
@@ -34,13 +36,15 @@ 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()) {
+ mGestureSuggest(new GestureSuggest()),
+ mTypingSuggest(new TypingSuggest()) {
}
Dictionary::~Dictionary() {
delete mUnigramDictionary;
delete mBigramDictionary;
delete mGestureSuggest;
+ delete mTypingSuggest;
}
int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSession,
@@ -60,14 +64,26 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi
}
return result;
} else {
- std::map<int, int> bigramMap;
- uint8_t bigramFilter[BIGRAM_FILTER_BYTE_SIZE];
- mBigramDictionary->fillBigramAddressToProbabilityMapAndFilter(prevWordCodePoints,
- prevWordLength, &bigramMap, bigramFilter);
- result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, ycoordinates,
- inputCodePoints, inputSize, &bigramMap, bigramFilter, useFullEditDistance, outWords,
- frequencies, outputTypes);
- return result;
+ if (USE_SUGGEST_INTERFACE_FOR_TYPING) {
+ DicTraverseWrapper::initDicTraverseSession(
+ traverseSession, this, prevWordCodePoints, prevWordLength);
+ result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
+ ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint,
+ outWords, frequencies, spaceIndices, outputTypes);
+ if (DEBUG_DICT) {
+ DUMP_RESULT(outWords, frequencies);
+ }
+ return result;
+ } else {
+ std::map<int, int> bigramMap;
+ uint8_t bigramFilter[BIGRAM_FILTER_BYTE_SIZE];
+ mBigramDictionary->fillBigramAddressToProbabilityMapAndFilter(prevWordCodePoints,
+ prevWordLength, &bigramMap, bigramFilter);
+ result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, ycoordinates,
+ inputCodePoints, inputSize, &bigramMap, bigramFilter, useFullEditDistance,
+ outWords, frequencies, outputTypes);
+ return result;
+ }
}
}