teminalclock: ClockFace update: Hide widgets instead of not loading them

Also use ClockFace_menu for hideWidget & powerSave settings
pull/2469/head
Richard de Boer 2023-01-07 17:21:44 +01:00
parent 2512268b98
commit 3bba0b6dab
No known key found for this signature in database
4 changed files with 29 additions and 26 deletions

View File

@ -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

View File

@ -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;

View File

@ -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",

View File

@ -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,