diff --git a/apps/terminalclock/ChangeLog b/apps/terminalclock/ChangeLog index 75d1a760e..268e0427c 100644 --- a/apps/terminalclock/ChangeLog +++ b/apps/terminalclock/ChangeLog @@ -5,3 +5,5 @@ 0.05: Add altitude display (only Bangle.js 2) 0.06: Add power related settings to control the HR and pressure(altitude) sensor from the watchface 0.07: Use ClockFace module and rework the settings to be able to personnalize the order of the lines +0.08: Hide widgets instead of not loading them at all + Use Clockface_menu for widgets and power saving settings diff --git a/apps/terminalclock/app.js b/apps/terminalclock/app.js index b60a32094..515ad8f66 100644 --- a/apps/terminalclock/app.js +++ b/apps/terminalclock/app.js @@ -32,7 +32,8 @@ const clock = new ClockFace({ this.unlock_precision = 1; if (this.HRMinConfidence === undefined) this.HRMinConfidence = 50; if (this.PowerOnInterval === undefined) this.PowerOnInterval = 15; - if (this.powerSaving===undefined) this.powerSaving = true; + if (this.powerSave===undefined) this.powerSave = this.powerSaving; // migrate old setting + if (this.powerSave===undefined) this.powerSave = true; ["L2", "L3", "L4", "L5", "L6", "L7", "L8", "L9"].forEach(k => { if (this[k]===undefined){ if(k == "L2") this[k] = "Date"; @@ -55,7 +56,7 @@ const clock = new ClockFace({ }); // set the services (HRM, pressure sensor, etc....) - if(!this.powerSaving){ + if(!this.powerSave){ turnOnServices(); } else{ setInterval(turnOnServices, this.PowerOnInterval*60000); // every PowerOnInterval min @@ -156,7 +157,7 @@ function turnOnServices(){ if(clock.showAltitude){ Bangle.setBarometerPower(true, "terminalclock"); } - if(clock.powerSaving){ + if(clock.powerSave){ setTimeout(function () { turnOffServices(); }, 45000); @@ -194,7 +195,7 @@ Clock related functions but not in the ClockFace module ---------------------------------------------------- */ function unlock(){ - if(clock.powerSaving){ + if(clock.powerSave){ turnOnServices(); } clock.precision = clock.unlock_precision; diff --git a/apps/terminalclock/metadata.json b/apps/terminalclock/metadata.json index a8682f9a8..8403a3b4d 100644 --- a/apps/terminalclock/metadata.json +++ b/apps/terminalclock/metadata.json @@ -3,7 +3,7 @@ "name": "Terminal Clock", "shortName":"Terminal Clock", "description": "A terminal cli like clock displaying multiple sensor data", - "version":"0.07", + "version":"0.08", "icon": "app.png", "type": "clock", "tags": "clock", diff --git a/apps/terminalclock/settings.js b/apps/terminalclock/settings.js index f347e8ee3..80f6248ed 100644 --- a/apps/terminalclock/settings.js +++ b/apps/terminalclock/settings.js @@ -2,11 +2,8 @@ var FILE = "terminalclock.json"; // Load settings var settings = Object.assign({ - // ClockFace lib - loadWidgets: true, // TerminalClock specific HRMinConfidence: 50, - powerSaving: true, PowerOnInterval: 15, L2: 'Date', L3: 'HR', @@ -17,6 +14,18 @@ L8: 'Empty', L9: 'Empty', }, require('Storage').readJSON(FILE, true) || {}); + // ClockFace lib: migrate "don't load widgets" to "hide widgets" + if (!("hideWidgets" in settings)) { + if (("loadWidgets" in settings) && !settings.loadWidgets) settings.hideWidgets = 1; + else settings.hideWidgets = 0; + } + delete settings.loadWidgets; + // ClockFace lib: migrate `powerSaving` to `powerSave` + if (!("powerSave" in settings)) { + if ("powerSaving" in settings) settings.powerSave = settings.powerSaving; + else settings.powerSave = true; + } + delete settings.powerSaving; function writeSettings() { require('Storage').writeJSON(FILE, settings); @@ -63,25 +72,16 @@ writeSettings(); } }, - 'Show widgets': { - value: settings.loadWidgets, - onchange: v => { - settings.loadWidgets = v; - writeSettings(); - } - }, - 'Power saving': { - value: settings.powerSaving, - onchange: v => { - settings.powerSaving = v; - writeSettings(); - setTimeout(function() { - E.showMenu(getMainMenu()); - },0); - } - } }; - if(settings.powerSaving){ + const save = (key, v) => { + settings[key] = v; + writeSettings(); + }; + require("ClockFace_menu").addItems(mainMenu, save, { + hideWidgets: settings.hideWidgets, + powerSave: settings.powerSave, + }); + if(settings.powerSave){ mainMenu['Power on interval'] = { value: settings.PowerOnInterval, min: 3, max: 60,