diff options
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 12 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SettingsValues.java | 6 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Suggest.java | 18 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestedWords.java | 29 | ||||
-rw-r--r-- | native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp | 2 | ||||
-rw-r--r-- | native/src/additional_proximity_chars.cpp | 10 | ||||
-rw-r--r-- | native/src/additional_proximity_chars.h | 22 | ||||
-rw-r--r-- | native/src/defines.h | 2 | ||||
-rw-r--r-- | native/src/proximity_info.cpp | 80 | ||||
-rw-r--r-- | native/src/proximity_info.h | 6 |
10 files changed, 122 insertions, 65 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index f41972e8b..ec408792c 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -930,7 +930,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar false /* typedWordValid */, false /* hasMinimalSuggestion */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */); + false /* isPunctuationSuggestions */, + false /* shouldBlockAutoCorrectionBySafetyNet */); // When in fullscreen mode, show completions generated by the application final SuggestedWords words = builder.build(); final boolean isAutoCorrection = false; @@ -1769,6 +1770,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // getSuggestedWordBuilder handles gracefully a null value of prevWord final SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(mWordComposer, prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(), mCorrectionMode); + final SuggestedWords suggestions = builder.build(); // Basically, we update the suggestion strip only when suggestion count > 1. However, // there is an exception: We update the suggestion strip whenever typed word's length @@ -1776,9 +1778,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // in most cases, suggestion count is 1 when typed word's length is 1, but we do always // need to clear the previous state when the user starts typing a word (i.e. typed word's // length == 1). - if (builder.size() > 1 || typedWord.length() == 1 || !builder.allowsToBeAutoCorrected() + if (suggestions.size() > 1 || typedWord.length() == 1 + || !suggestions.mAllowsToBeAutoCorrected || mSuggestionsView.isShowingAddToDictionaryHint()) { - showSuggestions(builder.build(), typedWord); + showSuggestions(suggestions, typedWord); } else { SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions(); if (previousSuggestions == mSettingsValues.mSuggestPuncList) { @@ -1792,7 +1795,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar false /* typedWordValid */, false /* hasMinimalSuggestion */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */); + false /* isPunctuationSuggestions */, + false /* shouldBlockAutoCorrectionBySafetyNet */); showSuggestions(obsoleteSuggestionsBuilder.build(), typedWord); } } diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java index 0a4aea140..7ae95326b 100644 --- a/java/src/com/android/inputmethod/latin/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/SettingsValues.java @@ -187,7 +187,8 @@ public class SettingsValues { false /* typedWordValid */, false /* hasMinimalSuggestion */, false /* allowsToBeAutoCorrected */, - true /* isPunctuationSuggestions */); + true /* isPunctuationSuggestions */, + false /* shouldBlockAutoCorrectionBySafetyNet */); return builder.build(); } @@ -209,7 +210,8 @@ public class SettingsValues { false /* typedWordValid */, false /* hasMinimalSuggestion */, false /* allowsToBeAutoCorrected */, - true /* isPunctuationSuggestions */); + true /* isPunctuationSuggestions */, + false /* shouldBlockAutoCorrectionBySafetyNet */); return builder.build(); } diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index 28d3b4437..b02c9738e 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -274,7 +274,8 @@ public class Suggest implements Dictionary.WordCallback { false /* typedWordValid */, false /* hasMinimalSuggestion */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */); + false /* isPunctuationSuggestions */, + false /* shouldBlockAutoCorrectionBySafetyNet */); } // TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder @@ -437,15 +438,20 @@ public class Suggest implements Dictionary.WordCallback { } // Don't auto-correct words with multiple capital letter autoCorrectionAvailable &= !wordComposer.isMostlyCaps(); + final boolean shouldBlockAutoCorrectionBySatefyNet; + if (allowsToBeAutoCorrected && scoreInfoList.size() > 1 && mAutoCorrectionThreshold > 0 + && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord, + scoreInfoList.get(1).mWord)) { + shouldBlockAutoCorrectionBySatefyNet = true; + } else { + shouldBlockAutoCorrectionBySatefyNet = false; + } builder = new SuggestedWords.Builder(scoreInfoList, !allowsToBeAutoCorrected /* typedWordValid */, autoCorrectionAvailable /* hasMinimalSuggestion */, allowsToBeAutoCorrected /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */); - if (allowsToBeAutoCorrected && builder.size() > 1 && mAutoCorrectionThreshold > 0 - && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord, builder.getWord(1))) { - builder.setShouldBlockAutoCorrectionBySafetyNet(); - } + false /* isPunctuationSuggestions */, + shouldBlockAutoCorrectionBySatefyNet); return builder; } diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index 144e67482..03ff5de7b 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -25,21 +25,25 @@ import java.util.List; public class SuggestedWords { public static final SuggestedWords EMPTY = new SuggestedWords(false, false, false, false, - Collections.<SuggestedWordInfo>emptyList()); + false, Collections.<SuggestedWordInfo>emptyList()); public final boolean mTypedWordValid; public final boolean mHasAutoCorrectionCandidate; public final boolean mIsPunctuationSuggestions; + public final boolean mAllowsToBeAutoCorrected; private final List<SuggestedWordInfo> mSuggestedWordInfoList; - SuggestedWords(boolean typedWordValid, - boolean hasAutoCorrectionCandidate, boolean isPunctuationSuggestions, - boolean shouldBlockAutoCorrectionBySafetyNet, - List<SuggestedWordInfo> suggestedWordInfoList) { + SuggestedWords(final boolean typedWordValid, + final boolean hasAutoCorrectionCandidate, + final boolean isPunctuationSuggestions, + final boolean shouldBlockAutoCorrectionBySafetyNet, + final boolean allowsToBeAutoCorrected, + final List<SuggestedWordInfo> suggestedWordInfoList) { mTypedWordValid = typedWordValid; mHasAutoCorrectionCandidate = hasAutoCorrectionCandidate && !shouldBlockAutoCorrectionBySafetyNet; mIsPunctuationSuggestions = isPunctuationSuggestions; + mAllowsToBeAutoCorrected = allowsToBeAutoCorrected; mSuggestedWordInfoList = suggestedWordInfoList; } @@ -76,7 +80,7 @@ public class SuggestedWords { private final boolean mTypedWordValid; private final boolean mHasMinimalSuggestion; private final boolean mIsPunctuationSuggestions; - private boolean mShouldBlockAutoCorrectionBySafetyNet; + private final boolean mShouldBlockAutoCorrectionBySafetyNet; private final boolean mAllowsToBeAutoCorrected; private final List<SuggestedWordInfo> mSuggestedWordInfoList; @@ -84,12 +88,14 @@ public class SuggestedWords { final boolean typedWordValid, final boolean hasMinimalSuggestion, final boolean allowsToBeAutoCorrected, - final boolean isPunctuationSuggestions) { + final boolean isPunctuationSuggestions, + final boolean shouldBlockAutoCorrectionBySafetyNet) { mSuggestedWordInfoList = suggestedWordInfoList; mTypedWordValid = typedWordValid; mHasMinimalSuggestion = hasMinimalSuggestion; mAllowsToBeAutoCorrected = allowsToBeAutoCorrected; mIsPunctuationSuggestions = isPunctuationSuggestions; + mShouldBlockAutoCorrectionBySafetyNet = shouldBlockAutoCorrectionBySafetyNet; } public static ArrayList<SuggestedWordInfo> getFromCharSequenceList( @@ -110,11 +116,6 @@ public class SuggestedWords { return result; } - public Builder setShouldBlockAutoCorrectionBySafetyNet() { - mShouldBlockAutoCorrectionBySafetyNet = true; - return this; - } - // Should get rid of the first one (what the user typed previously) from suggestions // and replace it with what the user currently typed. public static ArrayList<SuggestedWordInfo> getTypedWordAndPreviousSuggestions( @@ -138,7 +139,7 @@ public class SuggestedWords { public SuggestedWords build() { return new SuggestedWords(mTypedWordValid, mHasMinimalSuggestion, mIsPunctuationSuggestions, mShouldBlockAutoCorrectionBySafetyNet, - mSuggestedWordInfoList); + mAllowsToBeAutoCorrected, mSuggestedWordInfoList); } public int size() { @@ -166,7 +167,7 @@ public class SuggestedWords { } public static class SuggestedWordInfo { - private final CharSequence mWord; + public final CharSequence mWord; private final CharSequence mDebugString; private final boolean mPreviousSuggestedWord; diff --git a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp index e47a64a9e..9eb437c06 100644 --- a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp +++ b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp @@ -50,7 +50,7 @@ static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object, ProximityInfo *proximityInfo = new ProximityInfo( localeStr, maxProximityCharsSize, displayWidth, displayHeight, gridWidth, gridHeight, mostCommonkeyWidth, - (const uint32_t*)proximityChars, + (const int32_t*)proximityChars, keyCount, (const int32_t*)keyXCoordinates, (const int32_t*)keyYCoordinates, (const int32_t*)keyWidths, (const int32_t*)keyHeights, (const int32_t*)keyCharCodes, (const float*)sweetSpotCenterXs, (const float*)sweetSpotCenterYs, diff --git a/native/src/additional_proximity_chars.cpp b/native/src/additional_proximity_chars.cpp index 401c85aae..224f020f2 100644 --- a/native/src/additional_proximity_chars.cpp +++ b/native/src/additional_proximity_chars.cpp @@ -19,23 +19,23 @@ namespace latinime { const std::string AdditionalProximityChars::LOCALE_EN_US("en"); -const uint32_t AdditionalProximityChars::EN_US_ADDITIONAL_A[EN_US_ADDITIONAL_A_SIZE] = { +const int32_t AdditionalProximityChars::EN_US_ADDITIONAL_A[EN_US_ADDITIONAL_A_SIZE] = { 'e', 'i', 'o', 'u' }; -const uint32_t AdditionalProximityChars::EN_US_ADDITIONAL_E[EN_US_ADDITIONAL_E_SIZE] = { +const int32_t AdditionalProximityChars::EN_US_ADDITIONAL_E[EN_US_ADDITIONAL_E_SIZE] = { 'a', 'i', 'o', 'u' }; -const uint32_t AdditionalProximityChars::EN_US_ADDITIONAL_I[EN_US_ADDITIONAL_I_SIZE] = { +const int32_t AdditionalProximityChars::EN_US_ADDITIONAL_I[EN_US_ADDITIONAL_I_SIZE] = { 'a', 'e', 'o', 'u' }; -const uint32_t AdditionalProximityChars::EN_US_ADDITIONAL_O[EN_US_ADDITIONAL_O_SIZE] = { +const int32_t AdditionalProximityChars::EN_US_ADDITIONAL_O[EN_US_ADDITIONAL_O_SIZE] = { 'a', 'e', 'i', 'u' }; -const uint32_t AdditionalProximityChars::EN_US_ADDITIONAL_U[EN_US_ADDITIONAL_U_SIZE] = { +const int32_t AdditionalProximityChars::EN_US_ADDITIONAL_U[EN_US_ADDITIONAL_U_SIZE] = { 'a', 'e', 'i', 'o' }; } diff --git a/native/src/additional_proximity_chars.h b/native/src/additional_proximity_chars.h index e0049d949..e0ecc0e1d 100644 --- a/native/src/additional_proximity_chars.h +++ b/native/src/additional_proximity_chars.h @@ -20,29 +20,31 @@ #include <stdint.h> #include <string> +#include "defines.h" + namespace latinime { class AdditionalProximityChars { private: static const std::string LOCALE_EN_US; static const int EN_US_ADDITIONAL_A_SIZE = 4; - static const uint32_t EN_US_ADDITIONAL_A[]; + static const int32_t EN_US_ADDITIONAL_A[]; static const int EN_US_ADDITIONAL_E_SIZE = 4; - static const uint32_t EN_US_ADDITIONAL_E[]; + static const int32_t EN_US_ADDITIONAL_E[]; static const int EN_US_ADDITIONAL_I_SIZE = 4; - static const uint32_t EN_US_ADDITIONAL_I[]; + static const int32_t EN_US_ADDITIONAL_I[]; static const int EN_US_ADDITIONAL_O_SIZE = 4; - static const uint32_t EN_US_ADDITIONAL_O[]; + static const int32_t EN_US_ADDITIONAL_O[]; static const int EN_US_ADDITIONAL_U_SIZE = 4; - static const uint32_t EN_US_ADDITIONAL_U[]; + static const int32_t EN_US_ADDITIONAL_U[]; - static bool isEnLocale(const std::string* locale_str) { + static bool isEnLocale(const std::string *locale_str) { return locale_str && locale_str->size() >= LOCALE_EN_US.size() - && locale_str->compare(0, LOCALE_EN_US.size(), LOCALE_EN_US); + && LOCALE_EN_US.compare(0, LOCALE_EN_US.size(), *locale_str); } public: - static int getAdditionalCharsSize(const std::string* locale_str, const uint16_t c) { + static int getAdditionalCharsSize(const std::string* locale_str, const int32_t c) { if (!isEnLocale(locale_str)) { return 0; } @@ -62,7 +64,7 @@ class AdditionalProximityChars { } } - static const uint32_t* getAdditionalChars(const std::string* locale_str, const uint32_t c) { + static const int32_t* getAdditionalChars(const std::string *locale_str, const int32_t c) { if (!isEnLocale(locale_str)) { return 0; } @@ -82,7 +84,7 @@ class AdditionalProximityChars { } } - static bool hasAdditionalChars(const std::string* locale_str, const uint32_t c) { + static bool hasAdditionalChars(const std::string *locale_str, const int32_t c) { return getAdditionalCharsSize(locale_str, c) > 0; } }; diff --git a/native/src/defines.h b/native/src/defines.h index afa1e0404..b0dbffa0f 100644 --- a/native/src/defines.h +++ b/native/src/defines.h @@ -115,6 +115,7 @@ static inline void prof_out(void) { #define DEBUG_NODE DEBUG_DICT_FULL #define DEBUG_TRACE DEBUG_DICT_FULL #define DEBUG_PROXIMITY_INFO false +#define DEBUG_PROXIMITY_CHARS false #define DEBUG_CORRECTION false #define DEBUG_CORRECTION_FREQ false #define DEBUG_WORDS_PRIORITY_QUEUE false @@ -128,6 +129,7 @@ static inline void prof_out(void) { #define DEBUG_NODE false #define DEBUG_TRACE false #define DEBUG_PROXIMITY_INFO false +#define DEBUG_PROXIMITY_CHARS false #define DEBUG_CORRECTION false #define DEBUG_CORRECTION_FREQ false #define DEBUG_WORDS_PRIORITY_QUEUE false diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp index e590740d2..dd60ed62c 100644 --- a/native/src/proximity_info.cpp +++ b/native/src/proximity_info.cpp @@ -37,7 +37,7 @@ inline void copyOrFillZero(void *to, const void *from, size_t size) { ProximityInfo::ProximityInfo(const std::string localeStr, const int maxProximityCharsSize, const int keyboardWidth, const int keyboardHeight, const int gridWidth, const int gridHeight, const int mostCommonKeyWidth, - const uint32_t *proximityCharsArray, const int keyCount, const int32_t *keyXCoordinates, + const int32_t *proximityCharsArray, const int keyCount, const int32_t *keyXCoordinates, const int32_t *keyYCoordinates, const int32_t *keyWidths, const int32_t *keyHeights, const int32_t *keyCharCodes, const float *sweetSpotCenterXs, const float *sweetSpotCenterYs, const float *sweetSpotRadii) @@ -54,7 +54,7 @@ ProximityInfo::ProximityInfo(const std::string localeStr, const int maxProximity mInputXCoordinates(0), mInputYCoordinates(0), mTouchPositionCorrectionEnabled(false) { const int proximityGridLength = GRID_WIDTH * GRID_HEIGHT * MAX_PROXIMITY_CHARS_SIZE; - mProximityCharsArray = new uint32_t[proximityGridLength]; + mProximityCharsArray = new int32_t[proximityGridLength]; if (DEBUG_PROXIMITY_INFO) { AKLOGI("Create proximity info array %d", proximityGridLength); } @@ -148,35 +148,43 @@ int ProximityInfo::squaredDistanceToEdge(const int keyId, const int x, const int } void ProximityInfo::calculateNearbyKeyCodes( - const int x, const int y, const uint32_t primaryKey, int *inputCodes) { + const int x, const int y, const int32_t primaryKey, int *inputCodes) { int insertPos = 0; inputCodes[insertPos++] = primaryKey; const int startIndex = getStartIndexFromCoordinates(x, y); for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) { - const uint32_t c = mProximityCharsArray[startIndex + i]; + const int32_t c = mProximityCharsArray[startIndex + i]; if (c < KEYCODE_SPACE || c == primaryKey) { continue; } - for (int j = 0; j < KEY_COUNT; ++j) { - const bool onKey = isOnKey(j, x, y); - const int distance = squaredDistanceToEdge(j, x, y); - if (onKey || distance < MOST_COMMON_KEY_WIDTH_SQUARE) { - inputCodes[insertPos++] = c; + int keyIndex = getKeyIndex(c); + const bool onKey = isOnKey(keyIndex, x, y); + const int distance = squaredDistanceToEdge(keyIndex, x, y); + if (onKey || distance < MOST_COMMON_KEY_WIDTH_SQUARE) { + inputCodes[insertPos++] = c; + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { + if (DEBUG_DICT) { + assert(false); + } + return; } } } - const int existingProximitySize = insertPos; - for (int i = 0; i < existingProximitySize; ++i) { - const uint32_t c = inputCodes[i]; - const int additionalProximitySize = - AdditionalProximityChars::hasAdditionalChars(&mLocaleStr, c); - if (additionalProximitySize <= 0) { - continue; + inputCodes[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE; + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { + if (DEBUG_DICT) { + assert(false); } - const uint32_t* additionalProximityChars = - AdditionalProximityChars::getAdditionalChars(&mLocaleStr, c); + return; + } + + const int additionalProximitySize = + AdditionalProximityChars::getAdditionalCharsSize(&mLocaleStr, primaryKey); + if (additionalProximitySize > 0) { + const int32_t* additionalProximityChars = + AdditionalProximityChars::getAdditionalChars(&mLocaleStr, primaryKey); for (int j = 0; j < additionalProximitySize; ++j) { - const uint32_t ac = additionalProximityChars[j]; + const int32_t ac = additionalProximityChars[j]; int k = 0; for (; k < insertPos; ++k) { if ((int)ac == inputCodes[k]) { @@ -187,9 +195,16 @@ void ProximityInfo::calculateNearbyKeyCodes( continue; } inputCodes[insertPos++] = ac; + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { + if (DEBUG_DICT) { + assert(false); + } + return; + } } } - // TODO: calculate additional chars + // Add a delimiter for the proximity characters + inputCodes[insertPos] = 0; } // TODO: Calculate nearby codes here. @@ -205,8 +220,30 @@ void ProximityInfo::setInputParams(const int* inputCodes, const int inputLength, mPrimaryInputWord[i] = getPrimaryCharAt(i); } mPrimaryInputWord[inputLength] = 0; + if (DEBUG_PROXIMITY_CHARS) { + AKLOGI("--- setInputParams"); + } for (int i = 0; i < mInputLength; ++i) { const int *proximityChars = getProximityCharsAt(i); + const int primaryKey = proximityChars[0]; + const int x = xCoordinates[i]; + const int y = yCoordinates[i]; + if (DEBUG_PROXIMITY_CHARS) { + int a = x + y + primaryKey; + a += 0; + AKLOGI("--- Primary = %c, x = %d, y = %d", primaryKey, x, y); + // Keep debug code just in case + //int proximities[50]; + //for (int m = 0; m < 50; ++m) { + //proximities[m] = 0; + //} + //calculateNearbyKeyCodes(x, y, primaryKey, proximities); + //for (int l = 0; l < 50 && proximities[l] > 0; ++l) { + //if (DEBUG_PROXIMITY_CHARS) { + //AKLOGI("--- native Proximity (%d) = %c", l, proximities[l]); + //} + //} + } for (int j = 0; j < MAX_PROXIMITY_CHARS_SIZE && proximityChars[j] > 0; ++j) { const int currentChar = proximityChars[j]; const int keyIndex = getKeyIndex(currentChar); @@ -219,6 +256,9 @@ void ProximityInfo::setInputParams(const int* inputCodes, const int inputLength, ? EQUIVALENT_CHAR_WITHOUT_DISTANCE_INFO : PROXIMITY_CHAR_WITHOUT_DISTANCE_INFO; } + if (DEBUG_PROXIMITY_CHARS) { + AKLOGI("--- Proximity (%d) = %c", j, currentChar); + } } } } diff --git a/native/src/proximity_info.h b/native/src/proximity_info.h index 8c342e0ef..1a47aff84 100644 --- a/native/src/proximity_info.h +++ b/native/src/proximity_info.h @@ -47,7 +47,7 @@ class ProximityInfo { ProximityInfo(const std::string localeStr, const int maxProximityCharsSize, const int keyboardWidth, const int keybaordHeight, const int gridWidth, const int gridHeight, const int mostCommonkeyWidth, - const uint32_t *proximityCharsArray, const int keyCount, const int32_t *keyXCoordinates, + const int32_t *proximityCharsArray, const int keyCount, const int32_t *keyXCoordinates, const int32_t *keyYCoordinates, const int32_t *keyWidths, const int32_t *keyHeights, const int32_t *keyCharCodes, const float *sweetSpotCenterXs, const float *sweetSpotCenterYs, const float *sweetSpotRadii); @@ -92,7 +92,7 @@ class ProximityInfo { bool isOnKey(const int keyId, const int x, const int y); int squaredDistanceToEdge(const int keyId, const int x, const int y); void calculateNearbyKeyCodes( - const int x, const int y, const uint32_t primaryKey, int *inputCodes); + const int x, const int y, const int32_t primaryKey, int *inputCodes); const int MAX_PROXIMITY_CHARS_SIZE; const int KEYBOARD_WIDTH; @@ -109,7 +109,7 @@ class ProximityInfo { const int *mInputXCoordinates; const int *mInputYCoordinates; bool mTouchPositionCorrectionEnabled; - uint32_t *mProximityCharsArray; + int32_t *mProximityCharsArray; int *mNormalizedSquaredDistances; int32_t mKeyXCoordinates[MAX_KEY_COUNT_IN_A_KEYBOARD]; int32_t mKeyYCoordinates[MAX_KEY_COUNT_IN_A_KEYBOARD]; |