Merge branch 'master' of github.com:espruino/BangleApps

pull/2381/head
Gordon Williams 2022-12-09 10:36:14 +00:00
commit d7fbe66163
14 changed files with 23 additions and 38 deletions

View File

@ -1,3 +1,4 @@
0.55: Moved messages library into standalone library
0.56: Fix handling of music messages
0.57: Optimize saving empty message list
0.58: show/hide "messages" widget directly, instead of through library stub

View File

@ -125,9 +125,10 @@ exports.openGUI = function(msg) {
* @param {boolean} show
*/
exports.toggleWidget = function(show) {
if (!require("Storage").read("messagewidget")) return; // "messagewidget" module is missing!
if (show) require("messagewidget").show();
else require("messagewidget").hide();
if (!global.WIDGETS || !WIDGETS["messages"]) return; // widget is missing!
const method = WIDGETS["messages"][show ? "show" : "hide"];
/* if (typeof(method)!=="function") return; // widget must always have show()+hide(), fail hard rather than hide problems */
method.apply(WIDGETS["messages"]);
};
/**

View File

@ -1,7 +1,7 @@
{
"id": "messages",
"name": "Messages",
"version": "0.57",
"version": "0.58",
"description": "Library to handle, load and store message events received from Android/iOS",
"icon": "app.png",
"type": "module",

View File

@ -19,4 +19,3 @@
0.20: Added weather condition with temperature to clkinfo.
0.21: Updated clkinfo icon.
0.22: Automatic translation of strings, some left untranslated.
>>>>>>> b37fcacd1 (weather - autotranslate strings)

View File

@ -1,2 +1,3 @@
0.01: Moved messages widget into standalone widget app
0.02: Fix 'srcs' being defined in global scope
Remove library stub

View File

@ -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();
}

View File

@ -9,12 +9,10 @@
"supports": ["BANGLEJS","BANGLEJS2"],
"screenshots": [{"url": "screenshot.gif"}],
"dependencies" : { "messageicons":"module" },
"provides_modules" : ["messagewidget"],
"provides_widgets" : ["message"],
"default" : true,
"readme": "README.md",
"storage": [
{"name":"messagewidget","url":"lib.js"},
{"name":"widmessages.wid.js","url":"widget.js"}
]
}

View File

@ -7,6 +7,9 @@
.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"] = {
area: "tl", width: 0, srcs: [], draw: function(recall) {
// If we had a setTimeout queued from the last time we were called, remove it
@ -54,7 +57,9 @@
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;
require("messages").openGUI();
}, hide() {
},
// hide() and show() are required by the "message" library!
hide() {
this.hidden=true;
if (this.width) {
// hide widget

View File

@ -1,3 +1,4 @@
0.01: New widget!
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

View File

@ -12,12 +12,7 @@ Example: one SMS, one Signal, and two WhatsApp messages:
![screenshot](screenshot.png)
## Installation
This widget needs the [`messages`](/?id=messages) app to handle notifications.
You probably want to disable the default widget, to do so:
1. Open `Settings`
2. Navigate to `Apps`>`Messages`
3. Scroll down to the `Widget messages` entry, and change it to `Hide`
There can only be one messages widget, so you should uninstall the default "Message Widget".
## Settings
You can change settings by going to the global `Settings` app, then `App Settings`

View File

@ -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();
}

View File

@ -1,18 +1,16 @@
{
"id": "widmsggrid",
"name": "Messages Grid Widget",
"version": "0.03",
"version": "0.04",
"description": "Widget that displays notification icons in a grid",
"icon": "widget.png",
"type": "widget",
"tags": "tool,system",
"supports": ["BANGLEJS","BANGLEJS2"],
"dependencies" : { "messages":"module" },
"provides_modules" : ["messagewidget"],
"provides_widgets" : ["message"],
"readme": "README.md",
"storage": [
{"name":"messagewidget","url":"lib.js"},
{"name":"widmsggrid.wid.js","url":"widget.js"}
],
"screenshots": [{"url":"screenshot.png"}]

View File

@ -6,7 +6,8 @@
showRead: !!settings.showRead,
};
delete settings;
WIDGETS["msggrid"] = {
// widget name needs to be "messages": the library calls WIDGETS["messages'].hide()/show()
WIDGETS["messages"] = {
area: "tl", width: 0,
flash: s.flash,
showRead: s.showRead,
@ -57,7 +58,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
}, show: function (m) {
},
// show() and hide() are required by the "message" library!
show: function (m) {
delete w.hidden;
w.width = 24;
w.srcs = require("messages").getMessages(m)
@ -94,6 +97,6 @@
}
};
delete s;
const w = WIDGETS["msggrid"];
const w = WIDGETS["messages"];
Bangle.on("message", w.listener);
})();

1
bin/sanitycheck.js Executable file → Normal file
View File

@ -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 */
var KNOWN_WARNINGS = [
"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",
"App owmweather data file weather.json is also listed as data file for app weather",
];