abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/KeyboardData.java
diff options
context:
space:
mode:
authorRodrigo Batista de Moraes2022-05-06 13:38:43 -0300
committerJules Aguillon2022-05-08 16:55:03 +0200
commita27c64479f158e840c717e81d2345b2eaca23e47 (patch)
tree8fa1f44e966f8ee2b6ff5557242109729f9d82cf /srcs/juloo.keyboard2/KeyboardData.java
parent7da7a5082dc28a434776bb7f127b00955d7098f0 (diff)
downloadunexpected-keyboard-a27c64479f158e840c717e81d2345b2eaca23e47.tar.gz
unexpected-keyboard-a27c64479f158e840c717e81d2345b2eaca23e47.zip
use the closest swipe key on swipe
fix a direction
Diffstat (limited to 'srcs/juloo.keyboard2/KeyboardData.java')
-rw-r--r--srcs/juloo.keyboard2/KeyboardData.java96
1 files changed, 90 insertions, 6 deletions
diff --git a/srcs/juloo.keyboard2/KeyboardData.java b/srcs/juloo.keyboard2/KeyboardData.java
index 78c1d3f..e996c50 100644
--- a/srcs/juloo.keyboard2/KeyboardData.java
+++ b/srcs/juloo.keyboard2/KeyboardData.java
@@ -197,14 +197,98 @@ class KeyboardData
public KeyValue getValue(int index)
{
- switch (index)
+ if (index == 0 || index > 8) return key0;
+ KeyValue key = null;
+ if (edgekeys) {
+ // \ 1 /
+ // \ /
+ // 3 0 2
+ // / \
+ // / 4 \
+
+ // first closer
+ switch (index)
+ {
+ case 2: case 3: key = key1; break;
+ case 4: case 8: key = key2; break;
+ case 1: case 5: key = key3; break;
+ case 6: case 7: key = key4; break;
+ }
+ if (key != null) return key;
+ // second closer
+ switch (index)
+ {
+ case 1: case 4: key = key1; break;
+ case 3: case 7: key = key2; break;
+ case 2: case 6: key = key3; break;
+ case 5: case 8: key = key4; break;
+ }
+ if (key != null) return key;
+ // third closer
+ switch (index)
+ {
+ case 5: case 8: key = key1; break;
+ case 2: case 6: key = key2; break;
+ case 3: case 7: key = key3; break;
+ case 1: case 4: key = key4; break;
+ }
+ if (key != null) return key;
+ // fourth closer
+ switch (index)
+ {
+ case 6: case 7: key = key1; break;
+ case 1: case 5: key = key2; break;
+ case 4: case 8: key = key3; break;
+ case 2: case 3: key = key4; break;
+ }
+ if (key != null) return key;
+ }
+ else
{
- case 1: return key1;
- case 2: return key2;
- case 3: return key3;
- case 4: return key4;
- default: case 0: return key0;
+ // 1 | 2
+ // |
+ // --0--
+ // |
+ // 3 | 4
+ // first closer
+ switch (index)
+ {
+ case 1: case 2: key = key1; break;
+ case 3: case 4: key = key2; break;
+ case 5: case 6: key = key3; break;
+ case 7: case 8: key = key4; break;
+ }
+ if (key != null) return key;
+ // second closer
+ switch (index)
+ {
+ case 3: case 5: key = key1; break;
+ case 2: case 8: key = key2; break;
+ case 1: case 7: key = key3; break;
+ case 4: case 6: key = key4; break;
+ }
+ if (key != null) return key;
+ // third closer
+ switch (index)
+ {
+ case 4: case 6: key = key1; break;
+ case 1: case 7: key = key2; break;
+ case 2: case 8: key = key3; break;
+ case 3: case 5: key = key4; break;
+ }
+ if (key != null) return key;
+ // fourth closer
+ switch (index)
+ {
+ case 7: case 8: key = key1; break;
+ case 3: case 4: key = key2; break;
+ case 5: case 6: key = key3; break;
+ case 1: case 2: key = key4; break;
+ }
+ if (key != null) return key;
}
+
+ return key0;
}
}