aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/proximity_info_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/src/proximity_info_state.cpp')
-rw-r--r--native/jni/src/proximity_info_state.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp
index a4eb7e353..208b69356 100644
--- a/native/jni/src/proximity_info_state.cpp
+++ b/native/jni/src/proximity_info_state.cpp
@@ -98,6 +98,10 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
mDistanceCache.clear();
mNearKeysVector.clear();
}
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("Init ProximityInfoState: reused points = %d, last input size = %d",
+ pushTouchPointStartIndex, lastSavedInputSize);
+ }
mInputSize = 0;
if (xCoordinates && yCoordinates) {
@@ -109,6 +113,9 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
lastInputIndex = i;
}
}
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("Init ProximityInfoState: last input index = %d", lastInputIndex);
+ }
// Working space to save near keys distances for current, prev and prevprev input point.
NearKeysDistanceMap nearKeysDistances[3];
// These pointers are swapped for each inputs points.
@@ -119,13 +126,16 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
for (int i = pushTouchPointStartIndex; i <= lastInputIndex; ++i) {
// Assuming pointerId == 0 if pointerIds is null.
const int pid = pointerIds ? pointerIds[i] : 0;
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("Init ProximityInfoState: (%d)PID = %d", i, pid);
+ }
if (pointerId == pid) {
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;
- if (pushTouchPoint(i, c, x, y, time, isGeometric, i == lastInputIndex,
- currentNearKeysDistances, prevNearKeysDistances,
+ if (pushTouchPoint(i, c, x, y, time, isGeometric /* do sampling */,
+ i == lastInputIndex, currentNearKeysDistances, prevNearKeysDistances,
prevPrevNearKeysDistances)) {
// Previous point information was popped.
NearKeysDistanceMap *tmp = prevNearKeysDistances;
@@ -218,6 +228,10 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
}
}
}
+
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("ProximityState init finished: %d points out of %d", mInputSize, inputSize);
+ }
}
bool ProximityInfoState::checkAndReturnIsContinuationPossible(const int inputSize,
@@ -363,6 +377,13 @@ bool ProximityInfoState::pushTouchPoint(const int inputIndex, const int nodeChar
if (isLastPoint) {
if (size > 0 && getDistanceFloat(x, y, mInputXs.back(), mInputYs.back())
< mProximityInfo->getMostCommonKeyWidth() * LAST_POINT_SKIP_DISTANCE_SCALE) {
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("p0: size = %zd, x = %d, y = %d, lx = %d, ly = %d, dist = %f, "
+ "width = %f", size, x, y, mInputXs.back(), mInputYs.back(),
+ getDistanceFloat(x, y, mInputXs.back(), mInputYs.back()),
+ mProximityInfo->getMostCommonKeyWidth()
+ * LAST_POINT_SKIP_DISTANCE_SCALE);
+ }
return popped;
} else if (size > 1) {
int minChar = 0;
@@ -376,6 +397,10 @@ bool ProximityInfoState::pushTouchPoint(const int inputIndex, const int nodeChar
}
NearKeysDistanceMap::const_iterator itPP =
prevNearKeysDistances->find(minChar);
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("p1: char = %c, minDist = %f, prevNear key minDist = %f",
+ minChar, itPP->second, minDist);
+ }
if (itPP != prevNearKeysDistances->end() && minDist > itPP->second) {
return popped;
}
@@ -402,6 +427,10 @@ bool ProximityInfoState::pushTouchPoint(const int inputIndex, const int nodeChar
mInputYs.push_back(y);
mTimes.push_back(time);
mInputIndice.push_back(inputIndex);
+ if (DEBUG_GEO_FULL) {
+ AKLOGI("pushTouchPoint: x = %03d, y = %03d, time = %d, index = %d, popped ? %01d",
+ x, y, time, inputIndex, popped);
+ }
return popped;
}