draguboard: Compat w backswipe on newer firmwares
parent
4061bd2f5e
commit
92e2f4695c
|
|
@ -1 +1,3 @@
|
||||||
0.01: New App based on dragboard, but with a U shaped drag area
|
0.01: New App based on dragboard, but with a U shaped drag area
|
||||||
|
0.02: Catch and discard swipe events on fw2v19 and up (as well as some cutting
|
||||||
|
edge 2v18 ones), allowing compatability with the Back Swipe app.
|
||||||
|
|
|
||||||
|
|
@ -104,45 +104,53 @@ exports.input = function(options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let dragHandlerUB = function(event) {
|
||||||
|
"ram";
|
||||||
|
|
||||||
|
// drag on middle bottom rectangle
|
||||||
|
if (event.x > MIDPADDING - 2 && event.x < (R.x2-MIDPADDING + 2) && event.y >= ( (R.y2) - 12 )) {
|
||||||
|
moveCharPos(MIDDLE, event.b == 0, (event.x-middleStart)/(middleWidth/MIDDLE.length));
|
||||||
|
}
|
||||||
|
// drag on left or right rectangle
|
||||||
|
else if (event.y > R.y && (event.x < MIDPADDING-2 || event.x > (R.x2-MIDPADDING + 2))) {
|
||||||
|
moveCharPos(event.x<MIDPADDING-2 ? LEFT : RIGHT, event.b == 0, (event.y-topStart)/((R.y2 - topStart)/vLength));
|
||||||
|
}
|
||||||
|
// drag on top rectangle for number or punctuation
|
||||||
|
else if ((event.y < ( (R.y2) - 12 )) && (event.y > ( (R.y2) - 52 ))) {
|
||||||
|
moveCharPos(NUM, event.b == 0, (event.x-NUMPADDING)/6);
|
||||||
|
}
|
||||||
|
// Make a space or backspace by tapping right or left on screen above green rectangle
|
||||||
|
else if (event.y > R.y && event.b == 0) {
|
||||||
|
if (event.x < (R.x2)/2) {
|
||||||
|
showChars('<-');
|
||||||
|
text = text.slice(0, -1);
|
||||||
|
} else {
|
||||||
|
//show space sign
|
||||||
|
showChars('->');
|
||||||
|
text += ' ';
|
||||||
|
}
|
||||||
|
prevChar = null;
|
||||||
|
updateTopString();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let catchSwipe = (_,__)=>{
|
||||||
|
E.stopEventPropagation&&E.stopEventPropagation();
|
||||||
|
};
|
||||||
|
|
||||||
return new Promise((resolve,reject) => {
|
return new Promise((resolve,reject) => {
|
||||||
// Interpret touch input
|
// Interpret touch input
|
||||||
Bangle.setUI({
|
Bangle.setUI({
|
||||||
mode: 'custom',
|
mode: 'custom',
|
||||||
back: ()=>{
|
back: ()=>{
|
||||||
Bangle.setUI();
|
Bangle.setUI();
|
||||||
|
Bangle.prependListener&&Bangle.removeListener('swipe', catchSwipe); // Remove swipe lister if it was added with `Bangle.prependListener()` (fw2v19 and up).
|
||||||
g.clearRect(Bangle.appRect);
|
g.clearRect(Bangle.appRect);
|
||||||
resolve(text);
|
resolve(text);
|
||||||
},
|
},
|
||||||
drag: function(event) {
|
drag: dragHandlerDB
|
||||||
"ram";
|
|
||||||
|
|
||||||
// drag on middle bottom rectangle
|
|
||||||
if (event.x > MIDPADDING - 2 && event.x < (R.x2-MIDPADDING + 2) && event.y >= ( (R.y2) - 12 )) {
|
|
||||||
moveCharPos(MIDDLE, event.b == 0, (event.x-middleStart)/(middleWidth/MIDDLE.length));
|
|
||||||
}
|
|
||||||
// drag on left or right rectangle
|
|
||||||
else if (event.y > R.y && (event.x < MIDPADDING-2 || event.x > (R.x2-MIDPADDING + 2))) {
|
|
||||||
moveCharPos(event.x<MIDPADDING-2 ? LEFT : RIGHT, event.b == 0, (event.y-topStart)/((R.y2 - topStart)/vLength));
|
|
||||||
}
|
|
||||||
// drag on top rectangle for number or punctuation
|
|
||||||
else if ((event.y < ( (R.y2) - 12 )) && (event.y > ( (R.y2) - 52 ))) {
|
|
||||||
moveCharPos(NUM, event.b == 0, (event.x-NUMPADDING)/6);
|
|
||||||
}
|
|
||||||
// Make a space or backspace by tapping right or left on screen above green rectangle
|
|
||||||
else if (event.y > R.y && event.b == 0) {
|
|
||||||
if (event.x < (R.x2)/2) {
|
|
||||||
showChars('<-');
|
|
||||||
text = text.slice(0, -1);
|
|
||||||
} else {
|
|
||||||
//show space sign
|
|
||||||
showChars('->');
|
|
||||||
text += ' ';
|
|
||||||
}
|
|
||||||
prevChar = null;
|
|
||||||
updateTopString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
Bangle.prependListener&&Bangle.prependListener('swipe', catchSwipe); // Intercept swipes on fw2v19 and later. Should not break on older firmwares.
|
||||||
|
|
||||||
R = Bangle.appRect;
|
R = Bangle.appRect;
|
||||||
MIDPADDING = R.x + 35;
|
MIDPADDING = R.x + 35;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ "id": "draguboard",
|
{ "id": "draguboard",
|
||||||
"name": "DragUboard",
|
"name": "DragUboard",
|
||||||
"version":"0.01",
|
"version":"0.02",
|
||||||
"description": "A library for text input via swiping U-shaped keyboard.",
|
"description": "A library for text input via swiping U-shaped keyboard.",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"type":"textinput",
|
"type":"textinput",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue