Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e30c4e0b authored by Ken Wakasa's avatar Ken Wakasa
Browse files

Stabilize gesture recognition algorithm that looks for the nearest key.

It relies on the order of the key array.

Change-Id: I58fa71a7b330e59cd774fc208e5b6bc1a3decd2e
parent b0c693d0
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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();