Loading native/jni/src/proximity_info_state.cpp +4 −35 Original line number Diff line number Diff line Loading @@ -33,8 +33,10 @@ 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) { mIsContinuationPossible = checkAndReturnIsContinuationPossible( inputSize, xCoordinates, yCoordinates, times, isGeometric); ASSERT(isGeometric || (inputSize < MAX_WORD_LENGTH)); mIsContinuationPossible = ProximityInfoStateUtils::checkAndReturnIsContinuationPossible( inputSize, xCoordinates, yCoordinates, times, mSampledInputSize, &mSampledInputXs, &mSampledInputYs, &mSampledTimes, &mSampledInputIndice); mProximityInfo = proximityInfo; mHasTouchPositionCorrectionData = proximityInfo->hasTouchPositionCorrectionData(); Loading Loading @@ -149,39 +151,6 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi } } bool ProximityInfoState::checkAndReturnIsContinuationPossible(const int inputSize, 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 = mSampledInputIndice[i]; if (index > inputSize || xCoordinates[index] != mSampledInputXs[i] || yCoordinates[index] != mSampledInputYs[i] || times[index] != mSampledTimes[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; ++i) { if (xCoordinates[i] != mSampledInputXs[i] || yCoordinates[i] != mSampledInputYs[i]) { return false; } } } return true; } int ProximityInfoState::getDuration(const int index) const { if (index >= 0 && index < mSampledInputSize - 1) { return mSampledTimes[index + 1] - mSampledTimes[index]; } return 0; } // TODO: Remove the "scale" parameter // This function basically converts from a length to an edit distance. Accordingly, it's obviously // wrong to compare with mMaxPointToKeyLength. Loading native/jni/src/proximity_info_state.h +0 −4 Original line number Diff line number Diff line Loading @@ -122,8 +122,6 @@ class ProximityInfoState { return true; } int getDuration(const int index) const; bool isUsed() const { return mSampledInputSize > 0; } Loading Loading @@ -217,8 +215,6 @@ class ProximityInfoState { inline const int *getProximityCodePointsAt(const int index) const { return ProximityInfoStateUtils::getProximityCodePointsAt(mInputProximities, index); } bool checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const bool isGeometric) const; void popInputData(); // const Loading native/jni/src/proximity_info_state_utils.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -983,6 +983,34 @@ namespace latinime { return true; } /* static */ bool ProximityInfoStateUtils::checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const int sampledInputSize, const std::vector<int> *const sampledInputXs, const std::vector<int> *const sampledInputYs, const std::vector<int> *const sampledTimes, const std::vector<int> *const sampledInputIndices) { if (inputSize < sampledInputSize) { return false; } for (int i = 0; i < sampledInputSize; ++i) { const int index = (*sampledInputIndices)[i]; if (index >= inputSize) { return false; } if (xCoordinates[index] != (*sampledInputXs)[i] || yCoordinates[index] != (*sampledInputYs)[i]) { return false; } if (!times) { continue; } if (times[index] != (*sampledTimes)[i]) { return false; } } return true; } /* static */ void ProximityInfoStateUtils::dump(const bool isGeometric, const int inputSize, const int *const inputXCoordinates, const int *const inputYCoordinates, const int sampledInputSize, const std::vector<int> *const sampledInputXs, Loading native/jni/src/proximity_info_state_utils.h +6 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,12 @@ class ProximityInfoStateUtils { const std::vector<int> *const sampledTimes, const std::vector<float> *const sampledSpeedRates, const std::vector<int> *const sampledBeelineSpeedPercentiles); static bool checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const int sampledInputSize, const std::vector<int> *const sampledInputXs, const std::vector<int> *const sampledInputYs, const std::vector<int> *const sampledTimes, const std::vector<int> *const sampledInputIndices); private: DISALLOW_IMPLICIT_CONSTRUCTORS(ProximityInfoStateUtils); Loading Loading
native/jni/src/proximity_info_state.cpp +4 −35 Original line number Diff line number Diff line Loading @@ -33,8 +33,10 @@ 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) { mIsContinuationPossible = checkAndReturnIsContinuationPossible( inputSize, xCoordinates, yCoordinates, times, isGeometric); ASSERT(isGeometric || (inputSize < MAX_WORD_LENGTH)); mIsContinuationPossible = ProximityInfoStateUtils::checkAndReturnIsContinuationPossible( inputSize, xCoordinates, yCoordinates, times, mSampledInputSize, &mSampledInputXs, &mSampledInputYs, &mSampledTimes, &mSampledInputIndice); mProximityInfo = proximityInfo; mHasTouchPositionCorrectionData = proximityInfo->hasTouchPositionCorrectionData(); Loading Loading @@ -149,39 +151,6 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi } } bool ProximityInfoState::checkAndReturnIsContinuationPossible(const int inputSize, 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 = mSampledInputIndice[i]; if (index > inputSize || xCoordinates[index] != mSampledInputXs[i] || yCoordinates[index] != mSampledInputYs[i] || times[index] != mSampledTimes[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; ++i) { if (xCoordinates[i] != mSampledInputXs[i] || yCoordinates[i] != mSampledInputYs[i]) { return false; } } } return true; } int ProximityInfoState::getDuration(const int index) const { if (index >= 0 && index < mSampledInputSize - 1) { return mSampledTimes[index + 1] - mSampledTimes[index]; } return 0; } // TODO: Remove the "scale" parameter // This function basically converts from a length to an edit distance. Accordingly, it's obviously // wrong to compare with mMaxPointToKeyLength. Loading
native/jni/src/proximity_info_state.h +0 −4 Original line number Diff line number Diff line Loading @@ -122,8 +122,6 @@ class ProximityInfoState { return true; } int getDuration(const int index) const; bool isUsed() const { return mSampledInputSize > 0; } Loading Loading @@ -217,8 +215,6 @@ class ProximityInfoState { inline const int *getProximityCodePointsAt(const int index) const { return ProximityInfoStateUtils::getProximityCodePointsAt(mInputProximities, index); } bool checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const bool isGeometric) const; void popInputData(); // const Loading
native/jni/src/proximity_info_state_utils.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -983,6 +983,34 @@ namespace latinime { return true; } /* static */ bool ProximityInfoStateUtils::checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const int sampledInputSize, const std::vector<int> *const sampledInputXs, const std::vector<int> *const sampledInputYs, const std::vector<int> *const sampledTimes, const std::vector<int> *const sampledInputIndices) { if (inputSize < sampledInputSize) { return false; } for (int i = 0; i < sampledInputSize; ++i) { const int index = (*sampledInputIndices)[i]; if (index >= inputSize) { return false; } if (xCoordinates[index] != (*sampledInputXs)[i] || yCoordinates[index] != (*sampledInputYs)[i]) { return false; } if (!times) { continue; } if (times[index] != (*sampledTimes)[i]) { return false; } } return true; } /* static */ void ProximityInfoStateUtils::dump(const bool isGeometric, const int inputSize, const int *const inputXCoordinates, const int *const inputYCoordinates, const int sampledInputSize, const std::vector<int> *const sampledInputXs, Loading
native/jni/src/proximity_info_state_utils.h +6 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,12 @@ class ProximityInfoStateUtils { const std::vector<int> *const sampledTimes, const std::vector<float> *const sampledSpeedRates, const std::vector<int> *const sampledBeelineSpeedPercentiles); static bool checkAndReturnIsContinuationPossible(const int inputSize, const int *const xCoordinates, const int *const yCoordinates, const int *const times, const int sampledInputSize, const std::vector<int> *const sampledInputXs, const std::vector<int> *const sampledInputYs, const std::vector<int> *const sampledTimes, const std::vector<int> *const sampledInputIndices); private: DISALLOW_IMPLICIT_CONSTRUCTORS(ProximityInfoStateUtils); Loading