diff --git a/apps/widdevst/README.md b/apps/widdevst/README.md index 49affc78d..2ac3c8388 100644 --- a/apps/widdevst/README.md +++ b/apps/widdevst/README.md @@ -13,3 +13,7 @@ at fixed positions, and two bars - bottom to top: usage of RAM in green if below 50%, orange if between 50% and 80%, and red if above 80%. + +The widget will redraw more frequently when unlocked. + +It can be configured to avoid redrawing if all monitored peripherals are off, waiting until it hears from them (meaning you won't see regular RAM/Storage updates, but save battery by avoiding drawing). This can be configured by writing `{"redrawBars":0}` to `widdevst.settings.json`. diff --git a/apps/widdevst/metadata.json b/apps/widdevst/metadata.json index f2be2bec8..082086901 100644 --- a/apps/widdevst/metadata.json +++ b/apps/widdevst/metadata.json @@ -9,5 +9,8 @@ "readme": "README.md", "storage": [ {"name": "widdevst.wid.js", "url": "wid.js"} + ], + "data":[ + {"name": "widdevst.settings.json"} ] } diff --git a/apps/widdevst/wid.js b/apps/widdevst/wid.js index db7d72dd9..84bdc6a90 100644 --- a/apps/widdevst/wid.js +++ b/apps/widdevst/wid.js @@ -1,6 +1,9 @@ (() => { var stat = {date: 0}; var d = Date.now(); + var settings = require("Storage").readJSON("widdevst.settings.json", 1)||{}; + var redrawBars = "redrawBars" in settings ? settings.redrawBars : false; + delete settings; WIDGETS.devst = {area: "tr", width: 22, draw: function() { d = Date.now(); @@ -29,7 +32,7 @@ g.setColor(col(stat.sto)); g.drawRect(x + 2, y + 21, x + 2 + stat.sto * 18, y + 22); g.setColor(col(t)); g.drawRect(x + 1, y + 21 - t * 20, x + 2, y + 21); // if there's nothing active, don't queue a redraw (rely on Bangle.on(...) below) - if (again) setTimeout(draw, drawTime()); + if (redrawBars || again) setTimeout(draw, drawTime()); }}; function col(p) {