From 500309e217f5f05afab51ad537fddd21f9e8d08d Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 4 May 2022 23:40:21 +0200 Subject: [PATCH 1/2] calendar - Do not register as watch, manually start clock on button (Compatibility with Quick Launch) - Read start of week from new system settings instead of own configuration --- apps/calendar/ChangeLog | 2 ++ apps/calendar/calendar.js | 23 +++++++++++------------ apps/calendar/metadata.json | 2 +- apps/calendar/settings.js | 10 ---------- 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/apps/calendar/ChangeLog b/apps/calendar/ChangeLog index cc8bb6306..ea8934f84 100644 --- a/apps/calendar/ChangeLog +++ b/apps/calendar/ChangeLog @@ -5,3 +5,5 @@ 0.05: Update calendar weekend colors for start on Sunday 0.06: Use larger font for dates 0.07: Fix off-by-one-error on previous month +0.08: Do not register as watch, manually start clock on button + read start of week from system settings diff --git a/apps/calendar/calendar.js b/apps/calendar/calendar.js index 3f4315811..fc7e93cf5 100644 --- a/apps/calendar/calendar.js +++ b/apps/calendar/calendar.js @@ -18,8 +18,7 @@ const blue = "#0000ff"; const yellow = "#ffff00"; let settings = require('Storage').readJSON("calendar.json", true) || {}; -if (settings.startOnSun === undefined) - settings.startOnSun = false; +let startOnSun = ((require("Storage").readJSON("setting.json", true) || {}).firstDayOfWeek || 0) === 0; if (settings.ndColors === undefined) if (process.env.HWVERSION == 2) { settings.ndColors = true; @@ -50,14 +49,14 @@ function getDowLbls(locale) { case "de_AT": case "de_CH": case "de_DE": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]; } else { dowLbls = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"]; } break; case "nl_NL": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["zo", "ma", "di", "wo", "do", "vr", "za"]; } else { dowLbls = ["ma", "di", "wo", "do", "vr", "za", "zo"]; @@ -66,14 +65,14 @@ function getDowLbls(locale) { case "fr_BE": case "fr_CH": case "fr_FR": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]; } else { dowLbls = ["Lu", "Ma", "Me", "Je", "Ve", "Sa", "Di"]; } break; case "sv_SE": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]; } else { dowLbls = ["Lu", "Ma", "Me", "Je", "Ve", "Sa", "Di"]; @@ -81,21 +80,21 @@ function getDowLbls(locale) { break; case "it_CH": case "it_IT": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"]; } else { dowLbls = ["Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"]; } break; case "oc_FR": - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["dg", "dl", "dm", "dc", "dj", "dv", "ds"]; } else { dowLbls = ["dl", "dm", "dc", "dj", "dv", "ds", "dg"]; } break; default: - if (settings.startOnSun) { + if (startOnSun) { dowLbls = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; } else { dowLbls = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]; @@ -110,7 +109,7 @@ function drawCalendar(date) { g.clearRect(0, 0, maxX, maxY); g.setBgColor(bgColorMonth); g.clearRect(0, 0, maxX, headerH); - if (settings.startOnSun){ + if (startOnSun){ g.setBgColor(bgColorWeekend); g.clearRect(0, headerH + rowH, colW, maxY); g.setBgColor(bgColorDow); @@ -150,7 +149,7 @@ function drawCalendar(date) { }); date.setDate(1); - const dow = date.getDay() + (settings.startOnSun ? 1 : 0); + const dow = date.getDay() + (startOnSun ? 1 : 0); const dowNorm = dow === 0 ? 7 : dow; const monthMaxDayMap = { @@ -242,5 +241,5 @@ Bangle.on("touch", area => { }); // Show launcher when button pressed -Bangle.setUI("clock"); // TODO: ideally don't set 'clock' mode +setWatch(() => load(), process.env.HWVERSION === 2 ? BTN : BTN3, { repeat: false, edge: "falling" }); // No space for widgets! diff --git a/apps/calendar/metadata.json b/apps/calendar/metadata.json index 62d2513ae..5f968b364 100644 --- a/apps/calendar/metadata.json +++ b/apps/calendar/metadata.json @@ -1,7 +1,7 @@ { "id": "calendar", "name": "Calendar", - "version": "0.07", + "version": "0.08", "description": "Simple calendar", "icon": "calendar.png", "screenshots": [{"url":"screenshot_calendar.png"}], diff --git a/apps/calendar/settings.js b/apps/calendar/settings.js index 3c8f7d8e8..192d2ece0 100644 --- a/apps/calendar/settings.js +++ b/apps/calendar/settings.js @@ -1,8 +1,6 @@ (function (back) { var FILE = "calendar.json"; var settings = require('Storage').readJSON(FILE, true) || {}; - if (settings.startOnSun === undefined) - settings.startOnSun = false; if (settings.ndColors === undefined) if (process.env.HWVERSION == 2) { settings.ndColors = true; @@ -17,14 +15,6 @@ E.showMenu({ "": { "title": "Calendar" }, "< Back": () => back(), - 'Start Sunday': { - value: settings.startOnSun, - format: v => v ? "Yes" : "No", - onchange: v => { - settings.startOnSun = v; - writeSettings(); - } - }, 'B2 Colors': { value: settings.ndColors, format: v => v ? "Yes" : "No", From 24181f65bb638dfff3438155c8ea5f51f2daa300 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Thu, 5 May 2022 18:52:23 +0200 Subject: [PATCH 2/2] miclock2: Redraw only when seconds change --- apps/miclock2/ChangeLog | 1 + apps/miclock2/clock-mixed.js | 7 ++++--- apps/miclock2/metadata.json | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/miclock2/ChangeLog b/apps/miclock2/ChangeLog index 5560f00bc..55c60accd 100644 --- a/apps/miclock2/ChangeLog +++ b/apps/miclock2/ChangeLog @@ -1 +1,2 @@ 0.01: New App! +0.02: Redraw only when seconds change diff --git a/apps/miclock2/clock-mixed.js b/apps/miclock2/clock-mixed.js index d928a5185..edc68959c 100644 --- a/apps/miclock2/clock-mixed.js +++ b/apps/miclock2/clock-mixed.js @@ -6,6 +6,7 @@ const Radius = { "center": 7, "hour": 60, "min": 80, "dots": 88 }; const Center = { "x": 120, "y": 96 }; const Widths = { hour: 2, minute: 2 }; var buf = Graphics.createArrayBuffer(240,192,1,{msb:true}); +var lastDate = new Date(); function rotatePoint(x, y, d) { rad = -1 * d / 180 * Math.PI; @@ -45,10 +46,10 @@ function setLineWidth(x1, y1, x2, y2, lw) { ]; } - function drawMixedClock(force) { - if ((force || Bangle.isLCDOn()) && buf.buffer) { - var date = new Date(); + var date = new Date(); + if ((force || Bangle.isLCDOn()) && buf.buffer && date.getSeconds() === lastDate.getSeconds()) { + lastDate = date; var dateArray = date.toString().split(" "); var isEn = locale.name.startsWith("en"); var point = []; diff --git a/apps/miclock2/metadata.json b/apps/miclock2/metadata.json index dc1b49822..e1481dbd2 100644 --- a/apps/miclock2/metadata.json +++ b/apps/miclock2/metadata.json @@ -1,7 +1,7 @@ { "id": "miclock2", "name": "Mixed Clock 2", - "version": "0.01", + "version": "0.02", "description": "White color variant of the Mixed Clock with thicker clock hands for better readability in the bright sunlight, extra space under the clock for widgets and seconds in the digital clock.", "icon": "clock-mixed.png", "type": "clock",