Merge pull request #2387 from rigrig/messages-save-removal

messagegui: write "remove" messages to flash
master
Gordon Williams 2022-12-12 09:04:05 +00:00 committed by GitHub
commit dd103a7b43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 5 deletions

View File

@ -82,3 +82,4 @@
0.58: Fast load messages without writing to flash
Don't write messages to flash until the app closes
0.59: Ensure we do write messages if messages app can't be fast loaded (see #2373)
0.60: Fix saving of removal messages if UI not open

View File

@ -10,7 +10,15 @@ exports.listener = function(type, msg) {
clearTimeout(exports.messageTimeout);
delete exports.messageTimeout;
}
if (msg.t==="remove") return;
if (msg.t==="remove") {
// we won't open the UI for removed messages, so make sure to delete it from flash
if (Bangle.MESSAGES) {
// we were waiting for exports.messageTimeout
require("messages").apply(msg, Bangle.MESSAGES);
if (!Bangle.MESSAGES.length) delete Bangle.MESSAGES;
}
return require("messages").save(msg); // always write removal to flash
}
const appSettings = require("Storage").readJSON("messages.settings.json", 1) || {};
let loadMessages = (Bangle.CLOCK || event.important);
@ -26,12 +34,12 @@ exports.listener = function(type, msg) {
require("messages").save(msg);
} else {
if (!Bangle.MESSAGES) Bangle.MESSAGES = [];
Bangle.MESSAGES.push(msg);
require("messages").apply(msg, Bangle.MESSAGES);
if (!Bangle.MESSAGES.length) delete Bangle.MESSAGES;
}
const saveToFlash = () => {
// save messages from RAM to flash after all, if we decide not to launch app
if (!Bangle.MESSAGES) return;
Bangle.MESSAGES.forEach(m => require("messages").save(m));
if (Bangle.MESSAGES) Bangle.MESSAGES.forEach(m => require("messages").save(m));
delete Bangle.MESSAGES;
}
msg.handled = true;
@ -50,6 +58,7 @@ exports.listener = function(type, msg) {
if (exports.messageTimeout) clearTimeout(exports.messageTimeout);
exports.messageTimeout = setTimeout(function() {
delete exports.messageTimeout;
if (!Bangle.MESSAGES) return; // message was removed during the delay
if (type!=="music") {
if (!loadMessages) {
// not opening the app, just buzz

View File

@ -2,7 +2,7 @@
"id": "messagegui",
"name": "Message UI",
"shortName": "Messages",
"version": "0.59",
"version": "0.60",
"description": "Default app to display notifications from iOS and Gadgetbridge/Android",
"icon": "app.png",
"type": "app",