aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2012-09-12 13:17:45 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-09-12 13:17:45 -0700
commit40794c90b5c4b9fd1d9bf915feb04b78f55b3200 (patch)
treea011fcea63d949c64f1f399c81cbce7b449a21ac /java/src
parente505c90b11c6e482d8853690a4eb1c5b5a86a9c4 (diff)
parent5d46fb59d4b3d8c1dd37b8177dc3aed812c28c08 (diff)
downloadlatinime-40794c90b5c4b9fd1d9bf915feb04b78f55b3200.tar.gz
latinime-40794c90b5c4b9fd1d9bf915feb04b78f55b3200.tar.xz
latinime-40794c90b5c4b9fd1d9bf915feb04b78f55b3200.zip
am 5d46fb59: am e30c4e0b: Stabilize gesture recognition algorithm that looks for the nearest key.
* commit '5d46fb59d4b3d8c1dd37b8177dc3aed812c28c08': Stabilize gesture recognition algorithm that looks for the nearest key.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java13
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java4
2 files changed, 12 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 03c216474..cb120a33e 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -52,7 +52,7 @@ import java.util.Locale;
/**
* Class for describing the position and characteristics of a single key in the keyboard.
*/
-public class Key {
+public class Key implements Comparable<Key> {
private static final String TAG = Key.class.getSimpleName();
/**
@@ -410,7 +410,7 @@ public class Key {
});
}
- private boolean equals(final Key o) {
+ private boolean equalsInternal(final Key o) {
if (this == o) return true;
return o.mX == mX
&& o.mY == mY
@@ -428,13 +428,20 @@ public class Key {
}
@Override
+ public int compareTo(Key o) {
+ if (equalsInternal(o)) return 0;
+ if (mHashCode > o.mHashCode) return 1;
+ return -1;
+ }
+
+ @Override
public int hashCode() {
return mHashCode;
}
@Override
public boolean equals(final Object o) {
- return o instanceof Key && equals((Key)o);
+ return o instanceof Key && equalsInternal((Key)o);
}
@Override
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index ab5d31d42..e6fe50e02 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -24,7 +24,7 @@ import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.latin.CollectionUtils;
import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.TreeSet;
public class KeyboardParams {
public KeyboardId mId;
@@ -58,7 +58,7 @@ public class KeyboardParams {
public int GRID_WIDTH;
public int GRID_HEIGHT;
- public final HashSet<Key> mKeys = CollectionUtils.newHashSet();
+ public final TreeSet<Key> mKeys = CollectionUtils.newTreeSet(); // ordered set
public final ArrayList<Key> mShiftKeys = CollectionUtils.newArrayList();
public final ArrayList<Key> mAltCodeKeysWhileTyping = CollectionUtils.newArrayList();
public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet();