diff options
author | 2011-03-04 22:27:28 -0800 | |
---|---|---|
committer | 2011-03-04 22:27:28 -0800 | |
commit | a7dfbf8409914cf7cd6bf11ba860a1ad15a7ffd1 (patch) | |
tree | 6f6c525cfcf9ad337f9534a08e198852fc0d709d /java/src | |
parent | 107e87675721a89e9322b6530e01a99836f291dc (diff) | |
parent | f9a5bfa147b07f135e8da6f9b7305c31181fa5eb (diff) | |
download | latinime-a7dfbf8409914cf7cd6bf11ba860a1ad15a7ffd1.tar.gz latinime-a7dfbf8409914cf7cd6bf11ba860a1ad15a7ffd1.tar.xz latinime-a7dfbf8409914cf7cd6bf11ba860a1ad15a7ffd1.zip |
am f9a5bfa1: Merge "Add the suggestion algorithm of words with space proximity" into honeycomb-mr1
* commit 'f9a5bfa147b07f135e8da6f9b7305c31181fa5eb':
Add the suggestion algorithm of words with space proximity
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Keyboard.java | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/ProximityInfo.java | 26 |
2 files changed, 14 insertions, 16 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 3005920b1..06d44680d 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -174,7 +174,7 @@ public class Keyboard { mDefaultHeight = mDefaultWidth; mId = id; loadKeyboard(context, xmlLayoutResId); - mProximityInfo = new ProximityInfo(mDisplayWidth, mDisplayHeight, GRID_WIDTH, GRID_HEIGHT); + mProximityInfo = new ProximityInfo(GRID_WIDTH, GRID_HEIGHT); } public int getProximityInfo() { @@ -378,7 +378,7 @@ public class Keyboard { mGridNeighbors[(y / mCellHeight) * GRID_WIDTH + (x / mCellWidth)] = cell; } } - mProximityInfo.setProximityInfo(mGridNeighbors); + mProximityInfo.setProximityInfo(mGridNeighbors, getMinWidth(), getHeight(), mKeys); } public boolean isInside(Key key, int x, int y) { diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java index fcada3762..80d6de952 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java @@ -18,18 +18,17 @@ package com.android.inputmethod.keyboard; import com.android.inputmethod.latin.Utils; +import java.util.Arrays; +import java.util.List; + public class ProximityInfo { public static final int MAX_PROXIMITY_CHARS_SIZE = 16; - private final int mDisplayWidth; - private final int mDisplayHeight; private final int mGridWidth; private final int mGridHeight; private final int mGridSize; - ProximityInfo(int displayWidth, int displayHeight, int gridWidth, int gridHeight) { - mDisplayWidth = displayWidth; - mDisplayHeight = displayHeight; + ProximityInfo(int gridWidth, int gridHeight) { mGridWidth = gridWidth; mGridHeight = gridHeight; mGridSize = mGridWidth * mGridHeight; @@ -43,20 +42,19 @@ public class ProximityInfo { int displayHeight, int gridWidth, int gridHeight, int[] proximityCharsArray); private native void releaseProximityInfoNative(int nativeProximityInfo); - public final void setProximityInfo(int[][] gridNeighbors) { + public final void setProximityInfo(int[][] gridNeighborKeyIndexes, int keyboardWidth, + int keyboardHeight, List<Key> keys) { int[] proximityCharsArray = new int[mGridSize * MAX_PROXIMITY_CHARS_SIZE]; + Arrays.fill(proximityCharsArray, KeyDetector.NOT_A_CODE); for (int i = 0; i < mGridSize; ++i) { - final int proximityCharsLength = gridNeighbors[i].length; - for (int j = 0; j < MAX_PROXIMITY_CHARS_SIZE; ++j) { - int charCode = KeyDetector.NOT_A_KEY; - if (j < proximityCharsLength) { - charCode = gridNeighbors[i][j]; - } - proximityCharsArray[i * MAX_PROXIMITY_CHARS_SIZE + j] = charCode; + final int proximityCharsLength = gridNeighborKeyIndexes[i].length; + for (int j = 0; j < proximityCharsLength; ++j) { + proximityCharsArray[i * MAX_PROXIMITY_CHARS_SIZE + j] = + keys.get(gridNeighborKeyIndexes[i][j]).mCode; } } mNativeProximityInfo = setProximityInfoNative(MAX_PROXIMITY_CHARS_SIZE, - mDisplayWidth, mDisplayHeight, mGridWidth, mGridHeight, proximityCharsArray); + keyboardWidth, keyboardHeight, mGridWidth, mGridHeight, proximityCharsArray); } // TODO: Get rid of this function's input (keyboard). |