From b784dd9c87b31ee227efc1affd30fedeaaee23e9 Mon Sep 17 00:00:00 2001 From: Romanist Date: Fri, 26 May 2023 13:33:40 +0400 Subject: [PATCH 1/4] Update metadata.json --- apps/pebbled/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/pebbled/metadata.json b/apps/pebbled/metadata.json index 9e71a914b..62fabc3e7 100644 --- a/apps/pebbled/metadata.json +++ b/apps/pebbled/metadata.json @@ -2,7 +2,7 @@ "id": "pebbled", "name": "Pebble Clock with distance", "shortName": "Pebble + distance", - "version": "0.03", + "version": "0.04", "description": "Fork of Pebble Clock with distance in KM. Both step count and the distance are on the main screen. Default step length = 0.75m (can be changed in settings).", "readme": "README.md", "icon": "pebbled.png", From ea18926dc86bd61f8f3afa92a1f7cf6c43db0d74 Mon Sep 17 00:00:00 2001 From: Romanist Date: Fri, 26 May 2023 13:34:30 +0400 Subject: [PATCH 2/4] Update ChangeLog --- apps/pebbled/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/pebbled/ChangeLog b/apps/pebbled/ChangeLog index d2f71f908..a0127ffce 100644 --- a/apps/pebbled/ChangeLog +++ b/apps/pebbled/ChangeLog @@ -2,3 +2,4 @@ 0.02: Tell clock widgets to hide. 0.03: Swipe down to see widgets Support for fast loading +0.04: Localisation request: added Miles and AM/PM From 48a2671ff8fd1b4e4a7fe4594590ef686602b6e6 Mon Sep 17 00:00:00 2001 From: Romanist Date: Fri, 26 May 2023 13:37:00 +0400 Subject: [PATCH 3/4] Update pebbled.settings.js --- apps/pebbled/pebbled.settings.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/pebbled/pebbled.settings.js b/apps/pebbled/pebbled.settings.js index d6c84d5d1..f4ca1d394 100644 --- a/apps/pebbled/pebbled.settings.js +++ b/apps/pebbled/pebbled.settings.js @@ -2,7 +2,7 @@ const SETTINGS_FILE = "pebbleDistance.json"; // initialize with default settings... - let s = {'bg': '#0f0', 'color': 'Green', 'avStep': 0.75}; + let s = {'bg': '#0f0', 'color': 'Green', 'avStep': 0.75, 'localization': 'World'}; // ...and overwrite them with any saved values // This way saved values are preserved if a new version adds more settings @@ -20,9 +20,10 @@ var color_options = ['Green','Orange','Cyan','Purple','Red','Blue']; var bg_code = ['#0f0','#ff0','#0ff','#f0f','#f00','#00f']; + var local_options = ['World', 'US']; E.showMenu({ - '': { 'title': 'Pebble Clock' }, + '': { 'title': 'PebbleD Clock' }, '< Back': back, 'Color': { value: 0 | color_options.indexOf(s.color), @@ -43,6 +44,15 @@ s.avStep = v; save(); } + }, + 'Localization': { + value: 0 | local_options.indexOf(s.localization), + min: 0, max: 1, + format: v => local_options[v], + onchange: v => { + s.localization = local_options[v]; + save(); + }, } }); }); From 311c35a8b8a684b8de934a37cb3d09438585e8a1 Mon Sep 17 00:00:00 2001 From: Romanist Date: Fri, 26 May 2023 13:41:03 +0400 Subject: [PATCH 4/4] Update pebbled.app.js --- apps/pebbled/pebbled.app.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/pebbled/pebbled.app.js b/apps/pebbled/pebbled.app.js index 627a7651c..54b56712c 100644 --- a/apps/pebbled/pebbled.app.js +++ b/apps/pebbled/pebbled.app.js @@ -16,6 +16,15 @@ let drawTimeout; let loadSettings = function() { settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green', 'avStep': 0.75}; }; + +let tConv24 = function(time24) { + var ts = time24; + var H = +ts.substr(0, 2); + var h = (H % 12) || 12; + h = (h < 10)?("0"+h):h; + ts = h + ts.substr(2, 3); + return ts; +} const img = require("heatshrink").decompress(atob("oFAwkEogA/AH4A/AH4A/AH4A/AE8AAAoeXoAfeDQUBmcyD7A+Dh///8QD649CiAfaHwUvD4sEHy0DDYIfEICg+Cn4fHICY+DD4nxcgojOHwgfEIAYfRCIQaDD4ZAFD5r7DH4//kAfRCIZ/GAAnwD5p9DX44fTHgYSBf4ofVDAQEBl4fFUAgfOXoQzBgIfFBAIfPP4RAEAoYAB+cRiK/SG4h/WIBAfXIA7CBAAswD55AHn6fUIBMCD65AHl4gCmcziAfQQJqfQQJpiDgk0IDXxQLRAEECaBM+QgRYRYgUIA0CD4ggSQJiDCiAKBICszAAswD55AHABKBVD7BAFABIqBD5pAFABPxD55AOD6BADiIAJQAyxLABwf/gaAPAH4A/AH4ARA==")); @@ -30,16 +39,19 @@ let batteryWarning = false; let draw = function() { let date = new Date(); let da = date.toString().split(" "); - let timeStr = da[4].substr(0,5); + let timeStr = settings.localization === "US" ? tConv24(da[4].substr(0,5)) : da[4].substr(0,5); const t = 6; let stps = Bangle.getHealthStatus("day").steps; + const distInKm = (stps / 1000 * settings.avStep).toFixed(2); + const distance = settings.localization === "US" ? (distInKm / 1.609).toFixed(2) : distInKm; + const distanceStr = settings.localization === "US" ? distance + ' MI' : distance + ' KM'; - // turn the warning on once we have dipped below 15% - if (E.getBattery() < 15) + // turn the warning on once we have dipped below 25% + if (E.getBattery() < 25) batteryWarning = true; - // turn the warning off once we have dipped above 20% - if (E.getBattery() > 20) + // turn the warning off once we have dipped above 30% + if (E.getBattery() > 30) batteryWarning = false; g.reset(); @@ -88,7 +100,7 @@ let draw = function() { g.setColor('#fff'); // white on blue or red best contrast else g.setColor('#000'); // otherwise black regardless of theme - g.drawString((stps / 1000 * settings.avStep).toFixed(2) + ' KM', w/2, ha + 107); + g.drawString(distanceStr, w/2, ha + 107); // queue next draw if (drawTimeout) clearTimeout(drawTimeout);