elapsed_t: add setting to show seconds never/unlocked/always
parent
81fd82926f
commit
03f1f8cda0
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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();
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue