Skip to content

Commit fdd59fc

Browse files
author
thyttan
committed
messagegui: tweaks and refactor
1 parent 2808202 commit fdd59fc

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

apps/messagegui/app.js

+22-19
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ var onMessagesModified = function(type,msg) {
9090
}
9191
if (msg && msg.id=="nav" && msg.t=="modify" && active!="map")
9292
return; // don't show an updated nav message if we're just in the menu
93-
showMessage(msg, "modified");
93+
showMessageRouter(msg, "modified");
9494
};
9595
Bangle.on("message", onMessagesModified);
9696

@@ -99,7 +99,7 @@ function saveMessages() {
9999
}
100100
E.on("kill", saveMessages);
101101

102-
function showMessage(msg, calledFrom) {
102+
function showMessageRouter(msg, calledFrom) {
103103
////var active; // active screen (undefined/"list"/"music"/"map"/"message"/"scroller"/"settings")
104104
//if (active==undefined) { } else if (active=="list") ... //and so on.
105105

@@ -117,6 +117,9 @@ function showMessage(msg, calledFrom) {
117117
if (calledFrom=="scrollerSelect") {
118118
return showMessageOverview(msg.id);
119119
}
120+
if (msg.id=="call") {
121+
return showMessageOverview(msg.id);
122+
}
120123
//if (false) {showMessageSettings(msg);}
121124
}
122125

@@ -304,23 +307,23 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
304307
var titleLines = [];
305308
var messagesWrapped = [];
306309
for (let i=idxSpan.start ; i<idxSpan.stop ; i++) {
307-
let MSG_ITER = MESSAGES[i];
308-
MSG_ITER.new = false;
310+
let msgIter = MESSAGES[i];
311+
msgIter.new = false;
309312

310-
//if (/*MSG_ITER.id=="music" ||*/ MSG_ITER.source=="maps" || MSG_ITER.id =="call") {
313+
//if (/*msgIter.id=="music" ||*/ msgIter.source=="maps" || msgIter.id =="call") {
311314
// idxSpan.stop++
312315
// if (idxSpan.stop>=MESSAGES.length) {break;}
313316
// continue;
314317
//}
315318

316319
var lines = [];
317-
const TITLE_STRING = MSG_ITER.title||MSG_ITER.sender||MSG_ITER.subject||MSG_ITER.src||/*LANG*/"No Title";
320+
const TITLE_STRING = msgIter.title||msgIter.sender||msgIter.subject||msgIter.src||/*LANG*/"No Title";
318321
lines = g.wrapString(TITLE_STRING, APP_RECT.w-10);
319322
for (let i=0; i<lines.length; i++) {
320323
titleLines.push(i + (messagesWrapped[0]?messagesWrapped[0].length:0) +
321324
(messagesWrapped[1]?messagesWrapped[1].length:0));
322325
}
323-
lines = lines.concat(g.wrapString(MSG_ITER.body, APP_RECT.w-10),
326+
lines = lines.concat(g.wrapString(msgIter.body, APP_RECT.w-10),
324327
["-".repeat(12)]);
325328
messagesWrapped.push(lines);
326329
}
@@ -343,6 +346,7 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
343346
map((x) => x + alreadyProcessed.lines.length));
344347
allLines = alreadyProcessed.lines.concat(allLines);
345348
}
349+
initScroll = initScroll*FONT_HEIGHT;
346350

347351
if (allLines.length == 0 && alreadyProcessed.lines.length == 0) {
348352
cancelReloadTimeout();
@@ -377,29 +381,28 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
377381
let prevScrollIdxs = [undefined, undefined]; // [prevIdx, prevPrevIdx]
378382

379383
function shouldAddNext(scrollIdx) {"ram"; return (scrollIdx>=allLines.length-1 &&
380-
scrollIdx!=prevScrollIdxs[0] && alreadyProcessed.idxSpan.stop<MESSAGES.length)}
384+
scrollIdx!=prevScrollIdxs[0] && alreadyProcessed.idxSpan.stop<MESSAGES.length);}
381385
function shouldAddPrev(scrollIdx) {"ram"; return (scrollIdx==0 &&
382-
scrollIdx!=prevScrollIdxs[0] && alreadyProcessed.idxSpan.start>0)}
386+
scrollIdx!=prevScrollIdxs[0] && alreadyProcessed.idxSpan.start>0);}
383387
function reinitAdding(idx) {
384388
setTimeout(() => {
385-
Bangle.emit("drag", {dy:0}); // Make sure scrolling doesn't continue after reinit.
389+
Bangle.emit("drag", {dy:0}); // Make sure scrolling doesn't continue after reinit. FIXME: Is this a hack that begs for a bug being fixed elsewhere?
386390
// Zero ms timeout as to not move on before the scroller has registered the emitted drag event.
387391
setTimeout(()=>{
388392
E.showScroller();
389393
if (BTN_EXT_SELECT) {clearWatch(BTN_EXT_SELECT); delete BTN_EXT_SELECT;}
390394
showMessagesScroller(MESSAGES[idx],
391395
true, alreadyProcessed);
392-
},0)
396+
},0);
393397
}, 40);
394398
}
395399

396400
E.showScroller({
397-
scroll : initScroll*FONT_HEIGHT,
401+
scroll : initScroll,
398402
h : FONT_HEIGHT, // height of each menu item in pixels
399403
c : allLines.length, // number of menu items
400404
// a function to draw a menu item
401-
draw : function(scrollIdx, r) {
402-
"ram";
405+
draw : function(scrollIdx, r) {"ram";
403406
g.setBgColor(titleLines.find(e=>e==scrollIdx)!==undefined ? g.theme.bg2 : g.theme.bg).
404407
setColor(titleLines.find(e=>e==scrollIdx)!==undefined ? g.theme.fg2 : g.theme.fg).
405408
clearRect(r);
@@ -413,9 +416,9 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
413416
select : function(scrollIdx, touch) {
414417
WU.show();
415418
const MSG_SELECT = identifyDisplayedMsg(scrollIdx);
416-
if (BTN_EXT_SELECT) {clearWatch(BTN_EXT_SELECT); delete BTN_EXT_SELECT}
417-
if (!touch) {showMessage(MSG_SELECT, "scrollerSelect"); return}
418-
if (touch.type == 0) {showMessage(MSG_SELECT,"scrollerSelect");}
419+
if (BTN_EXT_SELECT) {clearWatch(BTN_EXT_SELECT); delete BTN_EXT_SELECT;}
420+
if (!touch) {showMessageRouter(MSG_SELECT, "scrollerSelect"); return;}
421+
if (touch.type == 0) {showMessageRouter(MSG_SELECT,"scrollerSelect");}
419422
if (touch.type == 2) {showMessageSettings(MSG_SELECT);}
420423
}
421424
});
@@ -429,7 +432,7 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
429432
prevScrollIdxs[0]-LINES_PER_SCREEN/2:prevScrollIdxs[0]+LINES_PER_SCREEN/2;
430433
WU.show();
431434
showMessageOverview(identifyDisplayedMsg(SCROLL_IDX_CENTER_SCREEN).id, true);
432-
},0)
435+
},0);
433436
}, BTN, {edge:'rising'})));
434437
}
435438

@@ -675,7 +678,7 @@ function checkMessages(options) {
675678
E.showScroller({
676679
h : 48,
677680
c : Math.max(MESSAGES.length,3), // workaround for 2v10.219 firmware (min 3 not needed for 2v11)
678-
draw : function(idx, r) {"ram"
681+
draw : function(idx, r) {"ram";
679682
var msg = MESSAGES[idx];
680683
if (msg && msg.new) g.setBgColor(g.theme.bgH).setColor(g.theme.fgH);
681684
else g.setBgColor(g.theme.bg).setColor(g.theme.fg);

0 commit comments

Comments
 (0)