Stabilize gesture recognition algorithm that looks for the nearest key.
It relies on the order of the key array. Change-Id: I58fa71a7b330e59cd774fc208e5b6bc1a3decd2e
This commit is contained in:
parent
b0c693d005
commit
e30c4e0bb1
2 changed files with 12 additions and 5 deletions
|
@ -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
|
||||
|
@ -427,6 +427,13 @@ public class Key {
|
|||
&& o.mLabelFlags == mLabelFlags;
|
||||
}
|
||||
|
||||
@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;
|
||||
|
@ -434,7 +441,7 @@ public class Key {
|
|||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
return o instanceof Key && equals((Key)o);
|
||||
return o instanceof Key && equalsInternal((Key)o);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue