settings: Fix set time menu, allow dates to roll over

pull/490/head
Gordon Williams 2020-06-08 09:52:27 +01:00
parent 1c712d8039
commit de58659257
3 changed files with 22 additions and 52 deletions

View File

@ -152,7 +152,7 @@
{ "id": "setting",
"name": "Settings",
"icon": "settings.png",
"version":"0.19",
"version":"0.20",
"description": "A menu for setting up Bangle.js",
"tags": "tool,system",
"readme": "README.md",

View File

@ -21,3 +21,4 @@
0.17: Remove need for "settings" in appid.info
0.18: Don't overwrite existing settings on app update
0.19: Allow BLE HID settings, add README.md
0.20: Fix set time menu, allow dates to roll over

View File

@ -331,83 +331,52 @@ function showClockMenu() {
function showSetTimeMenu() {
d = new Date();
const timemenu = {
'': {
'title': 'Set Time',
'predraw': function () {
d = new Date();
timemenu.Hour.value = d.getHours();
timemenu.Minute.value = d.getMinutes();
timemenu.Second.value = d.getSeconds();
timemenu.Date.value = d.getDate();
timemenu.Month.value = d.getMonth() + 1;
timemenu.Year.value = d.getFullYear();
}
'': { 'title': 'Set Time' },
'< Back': function () {
setTime(d.getTime() / 1000);
showMainMenu();
},
'< Back': ()=>showMainMenu(),
'Hour': {
value: d.getHours(),
min: 0,
max: 23,
step: 1,
onchange: v => {
d = new Date();
d.setHours(v);
setTime(d.getTime() / 1000);
onchange: function (v) {
this.value = (v+24)%24;
d.setHours(this.value);
}
},
'Minute': {
value: d.getMinutes(),
min: 0,
max: 59,
step: 1,
onchange: v => {
d = new Date();
d.setMinutes(v);
setTime(d.getTime() / 1000);
onchange: function (v) {
this.value = (v+60)%60;
d.setMinutes(this.value);
}
},
'Second': {
value: d.getSeconds(),
min: 0,
max: 59,
step: 1,
onchange: v => {
d = new Date();
d.setSeconds(v);
setTime(d.getTime() / 1000);
onchange: function (v) {
this.value = (v+60)%60;
d.setSeconds(this.value);
}
},
'Date': {
value: d.getDate(),
min: 1,
max: 31,
step: 1,
onchange: v => {
d = new Date();
d.setDate(v);
setTime(d.getTime() / 1000);
onchange: function (v) {
this.value = ((v+29)%30)+1;
d.setDate(this.value);
}
},
'Month': {
value: d.getMonth() + 1,
min: 1,
max: 12,
step: 1,
onchange: v => {
d = new Date();
d.setMonth(v - 1);
setTime(d.getTime() / 1000);
onchange: function (v) {
this.value = ((v+11)%12)+1;
d.setMonth(this.value - 1);
}
},
'Year': {
value: d.getFullYear(),
min: 2019,
max: 2100,
step: 1,
onchange: v => {
d = new Date();
onchange: function (v) {
d.setFullYear(v);
setTime(d.getTime() / 1000);
}
}
};