elapsed_t: add setting to show seconds never/unlocked/always

master
paul-arg 2024-06-23 22:54:16 +02:00
parent 81fd82926f
commit 03f1f8cda0
3 changed files with 26 additions and 33 deletions

View File

@ -1,4 +1,4 @@
0.01: New App! 0.01: New App!
0.02: Handle AM/PM time in the "set target" menu. Add yesterday/today/tomorrow when showing target date to improve readability. 0.02: Handle AM/PM time in the "set target" menu. Add yesterday/today/tomorrow when showing target date to improve readability.
0.03: Add option to set clock as default, handle DST in day/month/year mode 0.03: Add option to set clock as default, handle DST in day/month/year mode
0.04: Use new pickers from more_pickers library 0.04: Use new pickers from the more_pickers library, add settings to display seconds never/unlocked/always

View File

@ -24,14 +24,12 @@ var now = new Date();
var settings = Object.assign({ var settings = Object.assign({
// default values // default values
displaySeconds: true, displaySeconds: 1,
displayMonthsYears: true, displayMonthsYears: true,
dateFormat: 0, dateFormat: 0,
time24: true time24: true
}, require('Storage').readJSON(APP_NAME + ".settings.json", true) || {}); }, require('Storage').readJSON(APP_NAME + ".settings.json", true) || {});
var temp_displaySeconds = settings.displaySeconds;
var data = Object.assign({ var data = Object.assign({
// default values // default values
target: { target: {
@ -118,15 +116,6 @@ function howManyDaysInMonth(month, year) {
return new Date(year, month, 0).getDate(); return new Date(year, month, 0).getDate();
} }
function handleExceedingDay() {
var maxDays = howManyDaysInMonth(data.target.M, data.target.Y);
menu.Day.max = maxDays;
if (data.target.D > maxDays) {
menu.Day.value = maxDays;
data.target.D = maxDays;
}
}
function getDatePickerObject() { function getDatePickerObject() {
switch (settings.dateFormat) { switch (settings.dateFormat) {
case 0: case 0:
@ -248,7 +237,6 @@ function showMainMenu() {
inMenu = false; inMenu = false;
Bangle.setUI("clock"); Bangle.setUI("clock");
setTarget(false); setTarget(false);
updateQueueMillis(settings.displaySeconds);
draw(); draw();
}, },
'Set clock as default': function () { 'Set clock as default': function () {
@ -307,7 +295,8 @@ var target;
setTarget(data.target.isSet); setTarget(data.target.isSet);
var drawTimeout; var drawTimeout;
var queueMillis = 1000; var temp_displaySeconds;
var queueMillis;
function queueDraw() { function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout); if (drawTimeout) clearTimeout(drawTimeout);
@ -322,27 +311,25 @@ function queueDraw() {
}, delay); }, delay);
} }
function updateQueueMillis(displaySeconds) { function updateQueueMillisAndDraw(displaySeconds) {
temp_displaySeconds = displaySeconds;
if (displaySeconds) { if (displaySeconds) {
queueMillis = 1000; queueMillis = 1000;
} else { } else {
queueMillis = 60000; queueMillis = 60000;
} }
draw();
} }
Bangle.on('lock', function (on, reason) { Bangle.on('lock', function (on, reason) {
if (inMenu) { // if already in a menu, nothing to do if (inMenu || settings.displaySeconds == 0 || settings.displaySeconds == 2) { // if already in a menu, or always/never show seconds, nothing to do
return; return;
} }
if (on) { // screen is locked if (on) { // screen is locked
temp_displaySeconds = false; updateQueueMillisAndDraw(false);
updateQueueMillis(false);
draw();
} else { // screen is unlocked } else { // screen is unlocked
temp_displaySeconds = settings.displaySeconds; updateQueueMillisAndDraw(true);
updateQueueMillis(temp_displaySeconds);
draw();
} }
}); });
@ -532,11 +519,14 @@ Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
Bangle.setUI("clock"); Bangle.setUI("clock");
if (Bangle.isBacklightOn()) { switch (settings.displaySeconds) {
temp_displaySeconds = settings.displaySeconds; case 0: // never
updateQueueMillis(temp_displaySeconds); updateQueueMillisAndDraw(false);
} else { break;
temp_displaySeconds = false; case 1: // unlocked
updateQueueMillis(false); updateQueueMillisAndDraw(Bangle.isBacklightOn());
break;
case 2: // always
updateQueueMillisAndDraw(true);
break;
} }
draw();

View File

@ -4,7 +4,7 @@
// Load settings // Load settings
var settings = Object.assign({ var settings = Object.assign({
// default values // default values
displaySeconds: true, displaySeconds: 1,
displayMonthsYears: true, displayMonthsYears: true,
dateFormat: 0, dateFormat: 0,
time24: true time24: true
@ -15,17 +15,20 @@
} }
var dateFormats = ["DD/MM/YYYY", "MM/DD/YYYY", "YYYY-MM-DD"]; var dateFormats = ["DD/MM/YYYY", "MM/DD/YYYY", "YYYY-MM-DD"];
var displaySecondsFormats = ["Never", "Unlocked", "Always"];
// Show the menu // Show the menu
E.showMenu({ E.showMenu({
"" : { "title" : "Elapsed Time" }, "" : { "title" : "Elapsed Time" },
"< Back" : () => back(), "< Back" : () => back(),
'Show\nseconds': { 'Show\nseconds': {
value: !!settings.displaySeconds, value: settings.displaySeconds,
min: 0, max: 2, wrap: true,
onchange: v => { onchange: v => {
settings.displaySeconds = v; settings.displaySeconds = v;
writeSettings(); writeSettings();
} },
format: function (v) {return displaySecondsFormats[v];}
}, },
'Show months/\nyears': { 'Show months/\nyears': {
value: !!settings.displayMonthsYears, value: !!settings.displayMonthsYears,