aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/proximity_info_state.cpp
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2012-08-27 14:39:17 +0900
committerSatoshi Kataoka <satok@google.com>2012-08-27 16:30:59 +0900
commit37b153e205c9672b299b47e97921fee2462a78bb (patch)
treec8b4863146d92ce844d64ed448e558006401c583 /native/jni/src/proximity_info_state.cpp
parent1451a0fb1fbe7b86fe12742a28c759d5cbade5dd (diff)
downloadlatinime-37b153e205c9672b299b47e97921fee2462a78bb.tar.gz
latinime-37b153e205c9672b299b47e97921fee2462a78bb.tar.xz
latinime-37b153e205c9672b299b47e97921fee2462a78bb.zip
Step 40-A Cleanup touch path
Change-Id: Id22c5ae6afbf040227dc47153b0849bbe38ff66f
Diffstat (limited to 'native/jni/src/proximity_info_state.cpp')
-rw-r--r--native/jni/src/proximity_info_state.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp
index 897ad46c4..f01b81e8d 100644
--- a/native/jni/src/proximity_info_state.cpp
+++ b/native/jni/src/proximity_info_state.cpp
@@ -84,12 +84,13 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
// Assuming pointerId == 0 if pointerIds is null.
const int pid = pointerIds ? pointerIds[i] : 0;
if (pointerId == pid) {
- ++mInputSize;
const int c = isGeometric ? NOT_A_COORDINATE : getPrimaryCharAt(i);
const int x = proximityOnly ? NOT_A_COORDINATE : xCoordinates[i];
const int y = proximityOnly ? NOT_A_COORDINATE : yCoordinates[i];
const int time = times ? times[i] : -1;
- pushTouchPoint(c, x, y, time, isGeometric);
+ if (pushTouchPoint(c, x, y, time, isGeometric)) {
+ ++mInputSize;
+ }
}
}
}
@@ -152,7 +153,7 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
}
}
-void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
+bool ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
const int time, const bool sample) {
const uint32_t size = mInputXs.size();
// TODO: Should have a const variable for 10
@@ -160,7 +161,7 @@ void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
if (size > 0) {
const int dist = getDistanceInt(x, y, mInputXs[size - 1], mInputYs[size - 1]);
if (sample && dist < sampleRate) {
- return;
+ return false;
}
mLengthCache.push_back(mLengthCache[size - 1] + dist);
} else {
@@ -176,6 +177,7 @@ void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
mInputXs.push_back(x);
mInputYs.push_back(y);
mTimes.push_back(time);
+ return true;
}
float ProximityInfoState::calculateNormalizedSquaredDistance(
@@ -196,10 +198,10 @@ float ProximityInfoState::calculateNormalizedSquaredDistance(
}
int ProximityInfoState::getDuration(const int index) const {
- if (mTimes.size() == 0 || index <= 0 || index >= static_cast<int>(mInputSize) - 1) {
- return 0;
+ if (mInputSize > 0 && index > 0 && index < static_cast<int>(mInputSize) - 1) {
+ return mTimes[index + 1] - mTimes[index - 1];
}
- return mTimes[index + 1] - mTimes[index - 1];
+ return 0;
}
float ProximityInfoState::getPointToKeyLength(int inputIndex, int charCode, float scale) {