Skip to content

Commit 5f02aaa

Browse files
author
thyttan
committed
messagegui: WIP lr-swipes for neg/pos-handling on msgsscroller
1 parent e086b2d commit 5f02aaa

File tree

1 file changed

+68
-6
lines changed

1 file changed

+68
-6
lines changed

apps/messagegui/app.js

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,18 @@ function showMessagesScroller(msg) {
296296
for (let i=0; i<lines.length; i++) {
297297
titleLines.push(i + allLines.length);
298298
}
299+
let footer = [""];
300+
if (msg.negative) {
301+
footer[0] += "<" + "-".repeat(4) + " " + ((!msg.reply&&!msg.positive)?" ".repeat(6):"");
302+
}
303+
if (msg.reply || msg.positive) {
304+
footer[0] += ((!msg.negative)?" ".repeat(6):"") + " " + "-".repeat(4) + ">";
305+
}
306+
if (!footer) {
307+
footer = ["-".repeat(12)];
308+
}
299309
lines = lines.concat(g.wrapString(msgIter.body, APP_RECT.w-10),
300-
["-".repeat(12)]);
310+
footer);
301311
allLines = allLines.concat(lines);
302312
}
303313

@@ -326,12 +336,20 @@ function showMessagesScroller(msg) {
326336
select : function(scrollIdx, touch) {
327337
for (let i=firstTitleLinePerMsg.length-1; i>=0 ; i--) {
328338
if (scrollIdx>=firstTitleLinePerMsg[i]) {
339+
if (touch && touch.type===2) {return;}
340+
const MSG_SELECTED = MESSAGES[i];
341+
WU&&WU.show();
342+
delete titleLines, allLines;
343+
//E.showScroller();
344+
updateReadMessages();
329345
if (!touch || touch.type===0) {
330-
WU&&WU.show();
331-
delete titleLines, allLines;
332-
//E.showScroller();
333-
updateReadMessages();
334-
setTimeout(()=>showMessageRouter(MESSAGES[i], true, "overview"),0);
346+
setTimeout(()=>showMessageRouter(MSG_SELECTED, true, "overview"),0);
347+
}
348+
print(touch)
349+
if (touch && touch.type.swipeLR) {
350+
print("select swipe")
351+
if (touch.type.swipeLR>0 && posHandler) {posHandler(MSG_SELECTED);}
352+
if (touch.type.swipeLR<0 && negHandler) {negHandler(MSG_SELECTED);}
335353
}
336354
break;
337355
}
@@ -388,6 +406,50 @@ function showMessagesScroller(msg) {
388406
}
389407
//print(MESSAGES)
390408
}
409+
var negHandler,posHandler = [ ];
410+
if (msg.negative) {
411+
negHandler = (msg)=>{
412+
print("negHandler")
413+
msg.new = false;
414+
cancelReloadTimeout(); // don't auto-reload to clock now
415+
Bangle.messageResponse(msg,false);
416+
returnToCheckMessages();
417+
};
418+
//footer.push({type:"img",src:atob("PhAB4A8AAAAAAAPAfAMAAAAAD4PwHAAAAAA/H4DwAAAAAH78B8AAAAAA/+A/AAAAAAH/Af//////w/gP//////8P4D///////H/Af//////z/4D8AAAAAB+/AfAAAAAA/H4DwAAAAAPg/AcAAAAADwHwDAAAAAA4A8AAAAAAAA=="),col:"#f00",cb:negHandler});
419+
}
420+
if (msg.reply && reply) {
421+
print("posHandler reply")
422+
posHandler = (msg)=>{
423+
replying = true;
424+
msg.new = false;
425+
cancelReloadTimeout(); // don't auto-reload to clock now
426+
reply.reply({msg: msg})
427+
.then(result => {
428+
Bluetooth.println(JSON.stringify(result));
429+
replying = false;
430+
returnToCheckMessages();
431+
})
432+
.catch(() => {
433+
replying = false;
434+
showMessagesScroller(msg);
435+
});
436+
};
437+
//footer.push({type:"img",src:atob("QRABAAAAAAAH//+AAAAABgP//8AAAAADgf//4AAAAAHg4ABwAAAAAPh8APgAAAAAfj+B////////geHv///////hf+f///////GPw///////8cGBwAAAAAPx/gDgAAAAAfD/gHAAAAAA8DngOAAAAABwDHP8AAAAADACGf4AAAAAAAAM/w=="),col:"#0f0", cb:posHandler});
438+
}
439+
else if (msg.positive) {
440+
posHandler = (msg)=>{
441+
print("posHandler")
442+
msg.new = false;
443+
cancelReloadTimeout(); // don't auto-reload to clock now
444+
Bangle.messageResponse(msg,true);
445+
returnToCheckMessages();
446+
};
447+
//footer.push({type:"img",src:atob("QRABAAAAAAAAAAOAAAAABgAAA8AAAAADgAAD4AAAAAHgAAPgAAAAAPgAA+AAAAAAfgAD4///////gAPh///////gA+D///////AD4H//////8cPgAAAAAAPw8+AAAAAAAfB/4AAAAAAA8B/gAAAAAABwB+AAAAAAADAB4AAAAAAAAABgAA=="),col:"#0f0",cb:posHandler});
448+
}
449+
Bangle.swipeHandler = (lr) => {
450+
if (lr) {Bangle.emit("touch", 1, {x:APP_RECT.x2/2, y:APP_RECT.y2/2, type:{swipeLR:lr}});}
451+
};
452+
Bangle.on("swipe", Bangle.swipeHandler);
391453
}
392454

393455
function showMessageSettings(msg) {

0 commit comments

Comments
 (0)