diff options
Diffstat (limited to 'native/jni/src')
-rw-r--r-- | native/jni/src/bigram_dictionary.cpp | 8 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state.cpp | 10 |
2 files changed, 12 insertions, 6 deletions
diff --git a/native/jni/src/bigram_dictionary.cpp b/native/jni/src/bigram_dictionary.cpp index 3eea51a41..dade4f16b 100644 --- a/native/jni/src/bigram_dictionary.cpp +++ b/native/jni/src/bigram_dictionary.cpp @@ -113,7 +113,7 @@ int BigramDictionary::getBigrams(const int32_t *prevWord, int prevWordLength, in } // If still no bigrams, we really don't have them! if (0 == pos) return 0; - int bigramFlags; + uint8_t bigramFlags; int bigramCount = 0; do { bigramFlags = BinaryFormat::getFlagsAndForwardPointer(root, &pos); @@ -153,7 +153,7 @@ int BigramDictionary::getBigramListPositionForWord(const int32_t *prevWord, forceLowerCaseSearch); if (NOT_VALID_WORD == pos) return 0; - const int flags = BinaryFormat::getFlagsAndForwardPointer(root, &pos); + const uint8_t flags = BinaryFormat::getFlagsAndForwardPointer(root, &pos); if (0 == (flags & BinaryFormat::FLAG_HAS_BIGRAMS)) return 0; if (0 == (flags & BinaryFormat::FLAG_HAS_MULTIPLE_CHARS)) { BinaryFormat::getCodePointAndForwardPointer(root, &pos); @@ -179,7 +179,7 @@ void BigramDictionary::fillBigramAddressToFrequencyMapAndFilter(const int32_t *p } if (0 == pos) return; - int bigramFlags; + uint8_t bigramFlags; do { bigramFlags = BinaryFormat::getFlagsAndForwardPointer(root, &pos); const int frequency = BinaryFormat::MASK_ATTRIBUTE_FREQUENCY & bigramFlags; @@ -215,7 +215,7 @@ bool BigramDictionary::isValidBigram(const int32_t *word1, int length1, const in int nextWordPos = BinaryFormat::getTerminalPosition(root, word2, length2, false /* forceLowerCaseSearch */); if (NOT_VALID_WORD == nextWordPos) return false; - int bigramFlags; + uint8_t bigramFlags; do { bigramFlags = BinaryFormat::getFlagsAndForwardPointer(root, &pos); const int bigramPos = BinaryFormat::getAttributeAddressAndForwardPointer(root, bigramFlags, diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp index c9a1ed0c0..b363dcc36 100644 --- a/native/jni/src/proximity_info_state.cpp +++ b/native/jni/src/proximity_info_state.cpp @@ -391,11 +391,17 @@ int ProximityInfoState::getDuration(const int index) const { float ProximityInfoState::getPointToKeyLength(int inputIndex, int codePoint, float scale) { const int keyId = mProximityInfo->getKeyIndexOf(codePoint); - if (keyId >= 0) { + if (keyId != NOT_AN_INDEX) { const int index = inputIndex * mProximityInfo->getKeyCount() + keyId; return min(mDistanceCache[index] * scale, mMaxPointToKeyLength); } - return 0; + // TODO: Do not hardcode here + // No penalty to ' and - + if (codePoint == '\'' || codePoint == '-') { + return 0; + } + // If the char is not a key on the keyboard then return the max length. + return MAX_POINT_TO_KEY_LENGTH; } int ProximityInfoState::getKeyKeyDistance(int key0, int key1) { |