diff --git a/apps/widshipbell/settings.js b/apps/widshipbell/settings.js index e14a84a90..bb47e9b20 100644 --- a/apps/widshipbell/settings.js +++ b/apps/widshipbell/settings.js @@ -2,7 +2,7 @@ var FILE = "widshipbell.json"; // Load settings var settings = Object.assign({ - enabled: true, + strength: 1, }, require('Storage').readJSON(FILE, true) || {}); function writeSettings() { @@ -13,11 +13,12 @@ E.showMenu({ "" : { "title" : "Ship's bell" }, "< Back" : () => back(), - 'Enable?': { - value: !!settings.enabled, // !! converts undefined to false - format: v => v?"Yes":"No", + 'Strength': { + value: settings.strength, + min: 0, max: 2, + format: v => ["Off", "Weak", "Strong"][v], onchange: v => { - settings.enabled = v; + settings.strength = v; writeSettings(); } }, diff --git a/apps/widshipbell/widget.js b/apps/widshipbell/widget.js index 7f0716201..bfcffa633 100644 --- a/apps/widshipbell/widget.js +++ b/apps/widshipbell/widget.js @@ -1,7 +1,11 @@ (() => { - var settings = Object.assign({ - enabled: true, - }, require('Storage').readJSON("widshipbell.json", true) || {}); + const strength = Object.assign({ + strength: 1, + }, require('Storage').readJSON("widshipbell.json", true) || {}).strength; + + function replaceAll(target, search, replacement) { + return target.split(search).join(replacement); + } function check() { const now = new Date(); @@ -14,21 +18,25 @@ // buzz now let pattern=''; if (strikeHour === 0 && currentMinute == 0) { - pattern = '.. .. .. ..'; + pattern = '.. .. .. ..'; } else if (strikeHour === 0 && currentMinute == 30) { pattern = '.'; } else if (strikeHour === 1 && currentMinute == 0) { pattern = '..'; } else if (strikeHour === 1 && currentMinute == 30) { - pattern = '.. .'; + pattern = '.. .'; } else if (strikeHour === 2 && currentMinute == 0) { - pattern = '.. ..'; + pattern = '.. ..'; } else if (strikeHour === 2 && currentMinute == 30) { - pattern = '.. .. .'; + pattern = '.. .. .'; } else if (strikeHour === 3 && currentMinute == 0) { - pattern = '.. .. ..'; + pattern = '.. .. ..'; } else if (strikeHour === 3 && currentMinute == 30) { - pattern = '.. .. .. .'; + pattern = '.. .. .. .'; + } + pattern = replaceAll(pattern, ' ', ' '); // longer pause + if (strength === 2) { // strong selected + pattern = replaceAll(pattern, '.', ':'); } require("buzz").pattern(pattern); } @@ -37,7 +45,7 @@ setTimeout(check, etaSecond*1000); } - if (settings.enabled === true) { + if (strength !== 0) { check(); } })();