mirror of https://github.com/espruino/BangleApps
Message widgets: we don't need a library
parent
605f87bb8f
commit
ec410fdac7
|
@ -1,3 +1,4 @@
|
||||||
0.55: Moved messages library into standalone library
|
0.55: Moved messages library into standalone library
|
||||||
0.56: Fix handling of music messages
|
0.56: Fix handling of music messages
|
||||||
0.57: Optimize saving empty message list
|
0.57: Optimize saving empty message list
|
||||||
|
0.58: show/hide "messages" widget directly, instead of through library stub
|
||||||
|
|
|
@ -125,9 +125,10 @@ exports.openGUI = function(msg) {
|
||||||
* @param {boolean} show
|
* @param {boolean} show
|
||||||
*/
|
*/
|
||||||
exports.toggleWidget = function(show) {
|
exports.toggleWidget = function(show) {
|
||||||
if (!require("Storage").read("messagewidget")) return; // "messagewidget" module is missing!
|
if (!global.WIDGETS || !WIDGETS["messages"]) return; // widget is missing!
|
||||||
if (show) require("messagewidget").show();
|
const method = WIDGETS["messages"][show ? "show" : "hide"];
|
||||||
else require("messagewidget").hide();
|
/* if (typeof(method)!=="function") return; // widget must always have show()+hide(), fail hard rather than hide problems */
|
||||||
|
method.apply(WIDGETS["messages"]);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "messages",
|
"id": "messages",
|
||||||
"name": "Messages",
|
"name": "Messages",
|
||||||
"version": "0.57",
|
"version": "0.58",
|
||||||
"description": "Library to handle, load and store message events received from Android/iOS",
|
"description": "Library to handle, load and store message events received from Android/iOS",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
0.01: Moved messages widget into standalone widget app
|
0.01: Moved messages widget into standalone widget app
|
||||||
|
0.02: Remove library stub
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
exports.hide = function() {
|
|
||||||
if (!global.WIDGETS||!WIDGETS["messages"]) return;
|
|
||||||
WIDGETS["messages"].hide();
|
|
||||||
}
|
|
||||||
exports.show = function() {
|
|
||||||
if (!global.WIDGETS||!WIDGETS["messages"]) return;
|
|
||||||
WIDGETS["messages"].show();
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "widmessages",
|
"id": "widmessages",
|
||||||
"name": "Message Widget",
|
"name": "Message Widget",
|
||||||
"version": "0.01",
|
"version": "0.02",
|
||||||
"description": "Widget showing new messages",
|
"description": "Widget showing new messages",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
|
@ -9,12 +9,10 @@
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"screenshots": [{"url": "screenshot.gif"}],
|
"screenshots": [{"url": "screenshot.gif"}],
|
||||||
"dependencies" : { "messageicons":"module" },
|
"dependencies" : { "messageicons":"module" },
|
||||||
"provides_modules" : ["messagewidget"],
|
|
||||||
"provides_widgets" : ["message"],
|
"provides_widgets" : ["message"],
|
||||||
"default" : true,
|
"default" : true,
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"messagewidget","url":"lib.js"},
|
|
||||||
{"name":"widmessages.wid.js","url":"widget.js"}
|
{"name":"widmessages.wid.js","url":"widget.js"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
.filter((msg, i, arr) => arr.findIndex(nmsg => msg.src == nmsg.src) == i);
|
.filter((msg, i, arr) => arr.findIndex(nmsg => msg.src == nmsg.src) == i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE when adding a custom "essages" widget:
|
||||||
|
// the name still needs to be "messages": the library calls WIDGETS["messages'].hide()/show()
|
||||||
|
// see e.g. widmsggrid
|
||||||
WIDGETS["messages"] = {
|
WIDGETS["messages"] = {
|
||||||
area: "tl", width: 0, srcs: [], draw: function(recall) {
|
area: "tl", width: 0, srcs: [], draw: function(recall) {
|
||||||
// If we had a setTimeout queued from the last time we were called, remove it
|
// If we had a setTimeout queued from the last time we were called, remove it
|
||||||
|
@ -54,7 +57,9 @@
|
||||||
var w = WIDGETS["messages"];
|
var w = WIDGETS["messages"];
|
||||||
if (!w || !w.width || c.x<w.x || c.x>w.x+w.width || c.y<w.y || c.y>w.y+24) return;
|
if (!w || !w.width || c.x<w.x || c.x>w.x+w.width || c.y<w.y || c.y>w.y+24) return;
|
||||||
require("messages").openGUI();
|
require("messages").openGUI();
|
||||||
}, hide() {
|
},
|
||||||
|
// hide() and show() are required by the "message" library!
|
||||||
|
hide() {
|
||||||
this.hidden=true;
|
this.hidden=true;
|
||||||
if (this.width) {
|
if (this.width) {
|
||||||
// hide widget
|
// hide widget
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
0.01: New widget!
|
0.01: New widget!
|
||||||
0.02: Adjust to message icons moving to messageicons lib
|
0.02: Adjust to message icons moving to messageicons lib
|
||||||
0.03: Use new message library
|
0.03: Use new message library
|
||||||
|
0.04: Remove library stub
|
|
@ -1,8 +0,0 @@
|
||||||
exports.hide = function() {
|
|
||||||
if (!global.WIDGETS||!WIDGETS["msggrid"]) return;
|
|
||||||
WIDGETS["msggrid"].hide();
|
|
||||||
}
|
|
||||||
exports.show = function() {
|
|
||||||
if (!global.WIDGETS||!WIDGETS["msggrid"]) return;
|
|
||||||
WIDGETS["msggrid"].show();
|
|
||||||
}
|
|
|
@ -1,18 +1,16 @@
|
||||||
{
|
{
|
||||||
"id": "widmsggrid",
|
"id": "widmsggrid",
|
||||||
"name": "Messages Grid Widget",
|
"name": "Messages Grid Widget",
|
||||||
"version": "0.03",
|
"version": "0.04",
|
||||||
"description": "Widget that displays notification icons in a grid",
|
"description": "Widget that displays notification icons in a grid",
|
||||||
"icon": "widget.png",
|
"icon": "widget.png",
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
"tags": "tool,system",
|
"tags": "tool,system",
|
||||||
"supports": ["BANGLEJS","BANGLEJS2"],
|
"supports": ["BANGLEJS","BANGLEJS2"],
|
||||||
"dependencies" : { "messages":"module" },
|
"dependencies" : { "messages":"module" },
|
||||||
"provides_modules" : ["messagewidget"],
|
|
||||||
"provides_widgets" : ["message"],
|
"provides_widgets" : ["message"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"messagewidget","url":"lib.js"},
|
|
||||||
{"name":"widmsggrid.wid.js","url":"widget.js"}
|
{"name":"widmsggrid.wid.js","url":"widget.js"}
|
||||||
],
|
],
|
||||||
"screenshots": [{"url":"screenshot.png"}]
|
"screenshots": [{"url":"screenshot.png"}]
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
showRead: !!settings.showRead,
|
showRead: !!settings.showRead,
|
||||||
};
|
};
|
||||||
delete settings;
|
delete settings;
|
||||||
WIDGETS["msggrid"] = {
|
// widget name needs to be "messages": the library calls WIDGETS["messages'].hide()/show()
|
||||||
|
WIDGETS["messages"] = {
|
||||||
area: "tl", width: 0,
|
area: "tl", width: 0,
|
||||||
flash: s.flash,
|
flash: s.flash,
|
||||||
showRead: s.showRead,
|
showRead: s.showRead,
|
||||||
|
@ -57,7 +58,9 @@
|
||||||
.drawString(w.total, w.x + w.width - 1, w.y + 24, w.total > 9);
|
.drawString(w.total, w.x + w.width - 1, w.y + 24, w.total > 9);
|
||||||
}
|
}
|
||||||
if (w.flash && w.status === "new") w.t = setTimeout(w.draw, 1000); // schedule redraw while blinking
|
if (w.flash && w.status === "new") w.t = setTimeout(w.draw, 1000); // schedule redraw while blinking
|
||||||
}, show: function (m) {
|
},
|
||||||
|
// show() and hide() are required by the "message" library!
|
||||||
|
show: function (m) {
|
||||||
delete w.hidden;
|
delete w.hidden;
|
||||||
w.width = 24;
|
w.width = 24;
|
||||||
w.srcs = require("messages").getMessages(m)
|
w.srcs = require("messages").getMessages(m)
|
||||||
|
@ -94,6 +97,6 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
delete s;
|
delete s;
|
||||||
const w = WIDGETS["msggrid"];
|
const w = WIDGETS["messages"];
|
||||||
Bangle.on("message", w.listener);
|
Bangle.on("message", w.listener);
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -93,7 +93,6 @@ const INTERNAL_FILES_IN_APP_TYPE = { // list of app types and files they SHOULD
|
||||||
/* These are warnings we know about but don't want in our output */
|
/* These are warnings we know about but don't want in our output */
|
||||||
var KNOWN_WARNINGS = [
|
var KNOWN_WARNINGS = [
|
||||||
"App gpsrec data file wildcard .gpsrc? does not include app ID",
|
"App gpsrec data file wildcard .gpsrc? does not include app ID",
|
||||||
"App widmessages storage file messagewidget is also listed as storage file for app widmsggrid",
|
|
||||||
];
|
];
|
||||||
|
|
||||||
function globToRegex(pattern) {
|
function globToRegex(pattern) {
|
||||||
|
|
Loading…
Reference in New Issue