diff options
author | 2012-12-10 17:17:52 +0900 | |
---|---|---|
committer | 2012-12-11 12:51:02 +0900 | |
commit | fe4f1ce26ca41ef51b5245d70e93b502f76262a5 (patch) | |
tree | c98bcb45f28ef06940c3cbe0ba661bce69dc2381 /native/jni/src/proximity_info_state.cpp | |
parent | 082507e1da56c6cefe575ec3d6a334e9b717e3fa (diff) | |
download | latinime-fe4f1ce26ca41ef51b5245d70e93b502f76262a5.tar.gz latinime-fe4f1ce26ca41ef51b5245d70e93b502f76262a5.tar.xz latinime-fe4f1ce26ca41ef51b5245d70e93b502f76262a5.zip |
Calculate isContinuationPossible for typing
Change-Id: I11edb1e5155e5048a6c95f84b36e2ef34572178c
Diffstat (limited to 'native/jni/src/proximity_info_state.cpp')
-rw-r--r-- | native/jni/src/proximity_info_state.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp index 39d53fb52..31938a20c 100644 --- a/native/jni/src/proximity_info_state.cpp +++ b/native/jni/src/proximity_info_state.cpp @@ -39,12 +39,8 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi const ProximityInfo *proximityInfo, const int *const inputCodes, const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const int *const pointerIds, const bool isGeometric) { - if (isGeometric) { - mIsContinuationPossible = checkAndReturnIsContinuationPossible( - inputSize, xCoordinates, yCoordinates, times); - } else { - mIsContinuationPossible = false; - } + mIsContinuationPossible = checkAndReturnIsContinuationPossible( + inputSize, xCoordinates, yCoordinates, times, isGeometric); mProximityInfo = proximityInfo; mHasTouchPositionCorrectionData = proximityInfo->hasTouchPositionCorrectionData(); @@ -466,13 +462,27 @@ float ProximityInfoState::calculateBeelineSpeedRate( } bool ProximityInfoState::checkAndReturnIsContinuationPossible(const int inputSize, - const int *const xCoordinates, const int *const yCoordinates, const int *const times) { - for (int i = 0; i < mSampledInputSize; ++i) { - const int index = mInputIndice[i]; - if (index > inputSize || xCoordinates[index] != mSampledInputXs[i] || - yCoordinates[index] != mSampledInputYs[i] || times[index] != mTimes[i]) { + const int *const xCoordinates, const int *const yCoordinates, const int *const times, + const bool isGeometric) const { + if (isGeometric) { + for (int i = 0; i < mSampledInputSize; ++i) { + const int index = mInputIndice[i]; + if (index > inputSize || xCoordinates[index] != mSampledInputXs[i] || + yCoordinates[index] != mSampledInputYs[i] || times[index] != mTimes[i]) { + return false; + } + } + } else { + if (inputSize < mSampledInputSize) { + // Assuming the cache is invalid if the previous input size is larger than the new one. return false; } + for (int i = 0; i < mSampledInputSize && i < MAX_WORD_LENGTH_INTERNAL; ++i) { + if (xCoordinates[i] != mSampledInputXs[i] + || yCoordinates[i] != mSampledInputYs[i]) { + return false; + } + } } return true; } |