From de58659257f0eedf9d98f7f0f55ac7fc1db23734 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 8 Jun 2020 09:52:27 +0100 Subject: [PATCH] settings: Fix set time menu, allow dates to roll over --- apps.json | 2 +- apps/setting/ChangeLog | 1 + apps/setting/settings.js | 71 +++++++++++----------------------------- 3 files changed, 22 insertions(+), 52 deletions(-) diff --git a/apps.json b/apps.json index 7f5d99430..587771fdb 100644 --- a/apps.json +++ b/apps.json @@ -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", diff --git a/apps/setting/ChangeLog b/apps/setting/ChangeLog index f168a1fe5..dfa8b79f7 100644 --- a/apps/setting/ChangeLog +++ b/apps/setting/ChangeLog @@ -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 diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 8ed6f58c5..ed15a15db 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -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); } } };