diff options
author | 2011-09-21 12:02:47 +0900 | |
---|---|---|
committer | 2011-09-22 18:39:34 +0900 | |
commit | 0e1f656c1be7f2916cf57c94d99b001795856270 (patch) | |
tree | 97f2d04d944f2c13d1e95e8f90b9ff7287793c6b /java/src | |
parent | a35ea4cba88868a8c45b4d132d0c49b128f76927 (diff) | |
download | latinime-0e1f656c1be7f2916cf57c94d99b001795856270.tar.gz latinime-0e1f656c1be7f2916cf57c94d99b001795856270.tar.xz latinime-0e1f656c1be7f2916cf57c94d99b001795856270.zip |
Extend JNI interface to pass the key coordinate information
Change-Id: Iec0d1415d6abba43b775a014516b961b167597b7
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/ProximityInfo.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java index a82bcbed0..0e2d28024 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java @@ -65,7 +65,8 @@ public class ProximityInfo { spellCheckerProximityInfo.mNativeProximityInfo = spellCheckerProximityInfo.setProximityInfoNative( SpellCheckerProximityInfo.ROW_SIZE, - 480, 300, 10, 3, SpellCheckerProximityInfo.PROXIMITY); + 480, 300, 10, 3, SpellCheckerProximityInfo.PROXIMITY, + 0, null, null, null, null, null); return spellCheckerProximityInfo; } @@ -74,7 +75,9 @@ public class ProximityInfo { Utils.loadNativeLibrary(); } private native int setProximityInfoNative(int maxProximityCharsSize, int displayWidth, - int displayHeight, int gridWidth, int gridHeight, int[] proximityCharsArray); + int displayHeight, int gridWidth, int gridHeight, int[] proximityCharsArray, + int keyCount, int[] keyXCoordinates, int[] keyYCoordinates, + int[] keyWidths, int[] keyHeights, int[] keyCharCodes); private native void releaseProximityInfoNative(int nativeProximityInfo); private final void setProximityInfo(int[][] gridNeighborKeyIndexes, int keyboardWidth, @@ -88,8 +91,23 @@ public class ProximityInfo { keys.get(gridNeighborKeyIndexes[i][j]).mCode; } } + final int keyCount = keys.size(); + int[] keyXCoordinates = new int[keyCount]; + int[] keyYCoordinates = new int[keyCount]; + int[] keyWidths = new int[keyCount]; + int[] keyHeights = new int[keyCount]; + int[] keyCharCodes = new int[keyCount]; + for (int i = 0; i < keyCount; ++i) { + final Key key = keys.get(i); + keyXCoordinates[i] = key.mX; + keyYCoordinates[i] = key.mY; + keyWidths[i] = key.mWidth; + keyHeights[i] = key.mHeight; + keyCharCodes[i] = key.mCode; + } mNativeProximityInfo = setProximityInfoNative(MAX_PROXIMITY_CHARS_SIZE, - keyboardWidth, keyboardHeight, mGridWidth, mGridHeight, proximityCharsArray); + keyboardWidth, keyboardHeight, mGridWidth, mGridHeight, proximityCharsArray, + keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes); } public int getNativeProximityInfo() { |