From 5c8ee270fc8fe6713c11df6f4525f848f3bee58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=88=9A=28noham=29=C2=B2?= <100566912+NohamR@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:11:49 +0200 Subject: [PATCH] Add alarm support to quick timer Extends the quick settings timer/chrono module with recurring alarms, alarm persistence, notification handling, and light blinking on alerts. Updates the system clock settings UI, README, hash config, and screenshots to match the new alarm flow. --- .gitignore | 5 +- 3.24.0.149/quickSettingsTimer.qmd | 895 +++++++++++++++++++++++------- 3.25.1.1/quickSettingsTimer.qmd | 895 +++++++++++++++++++++++------- 3.26.0.68/quickSettingsTimer.qmd | 895 +++++++++++++++++++++++------- 3.27.1.0/quickSettingsTimer.qmd | 895 +++++++++++++++++++++++------- 3.27.3.0/quickSettingsTimer.qmd | 895 +++++++++++++++++++++++------- README.md | 18 +- hash.sh | 2 +- images/quickSettingsTimer_1.png | Bin 14474 -> 15302 bytes images/quickSettingsTimer_2.png | Bin 11094 -> 11938 bytes images/quickSettingsTimer_3.png | Bin 12453 -> 17113 bytes images/quickSettingsTimer_4.png | Bin 0 -> 11695 bytes images/quickSettingsTimer_5.png | Bin 0 -> 180705 bytes 13 files changed, 3557 insertions(+), 943 deletions(-) create mode 100644 images/quickSettingsTimer_4.png create mode 100644 images/quickSettingsTimer_5.png diff --git a/.gitignore b/.gitignore index ac0c049..eb9ea50 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,7 @@ DOC.md .opencode/skills/qmd-port/SKILL.md NOTIFICATION.md SLEEP.md -mods.png \ No newline at end of file +mods.png +SETTINGS.md +SAVE.md +LIGHT.md diff --git a/3.24.0.149/quickSettingsTimer.qmd b/3.24.0.149/quickSettingsTimer.qmd index 5d79679..9c415cf 100644 --- a/3.24.0.149/quickSettingsTimer.qmd +++ b/3.24.0.149/quickSettingsTimer.qmd @@ -1,5 +1,5 @@ -; Quick Settings Timer/Chrono -; Adds a countdown timer and stopwatch to the quick settings panel +; Quick Settings Timer/Chrono/Alarm +; Adds a countdown timer, stopwatch, and alarm system to the quick settings panel ; Timer state lives in Values.timerManager so it persists across menu opens/closes AFFECT [[1658694193319203921]] @@ -18,6 +18,15 @@ AFFECT [[1658694193319203921]] property ~&6503679477&~ ~&16765420033347753489&~: ~&214625660372&~ property ~&197088788&~ presetMs: 60000 property ~&6503679477&~ addMode: ~&6504329801&~ + property ~&6503679477&~ blinkLightOnNotification: ~&214625660372&~ + property ~&197102514&~ _blinkLight: ~&6504117156&~ + + /* Alarm state*/ + property ~&6503679477&~ alarmMode: ~&214625660372&~ + property ~&197102514&~ alarms: [] + property ~&197088788&~ nextAlarmId: 1 + property ~&7083178290016&~ alarmNotificationText: "" + property ~&197088788&~ lastNotifiedMinute: -1 /* absolute epoch-minute of the last fired alarm*/ function fmt(ms) { ~&197102514&~ ~&180970&~ = ~&6502909715&~.~&197079679&~(ms); @@ -26,7 +35,6 @@ AFFECT [[1658694193319203921]] ~&197102514&~ ~&180988&~ = ~&6502909715&~.~&214626058827&~((~&180970&~ % 60000) / 1000); ~&197102514&~ mm = ~&180982&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); ~&197102514&~ ss = ~&180988&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); - ~&5972376&~ (~&180977&~ > 0) { ~&7083121450889&~ ~&180977&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + mm + ~&"180931&~ + ss; } @@ -34,36 +42,122 @@ AFFECT [[1658694193319203921]] } function refresh() { - ~&5972376&~ (timerMode) { - ~&478322454160073828&~ = fmt(remainMs > 0 ? remainMs : 0); + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.remainMs > 0 ? _timerManager.remainMs : 0); } ~&6503784146&~ { - ~&478322454160073828&~ = fmt(totalMs); + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.totalMs); } } function go() { - ~&5972376&~ (timerMode) { - ~&5972376&~ (remainMs <= 0) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + ~&5972376&~ (_timerManager.remainMs <= 0) ~&7083121450889&~; } - ~&16765420033347753489&~ = ~&214625660372&~; - isRunning = ~&6504329801&~; + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.isRunning = ~&6504329801&~; _tick.~&214641748151&~(); } function ~&6504295855&~() { - isRunning = ~&214625660372&~; + _timerManager.isRunning = ~&214625660372&~; _tick.~&6504295855&~(); } function doReset() { - ~&6504295855&~(); - ~&16765420033347753489&~ = ~&214625660372&~; - ~&5972376&~ (timerMode) { - remainMs = totalMs; + _timerManager.~&6504295855&~(); + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.remainMs = _timerManager.totalMs; } ~&6503784146&~ { - totalMs = 0; + _timerManager.totalMs = 0; + } + _timerManager.refresh(); + } + + /* Alarm management*/ + function addAlarm(~&180977&~, ~&180982&~) { + ~&197102514&~ ~&180970&~ = { ~&5972374&~: _timerManager.nextAlarmId, hour: ~&180977&~, minute: ~&180982&~, ~&233726547792244&~: ~&6504329801&~ }; + _timerManager.alarms = _timerManager.alarms.~&7082546043425&~([~&180970&~]); + _timerManager.nextAlarmId++; + _timerManager.saveAlarms(); + } + + function removeAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&7082656280847&~(function(~&180970&~) { + ~&7083121450889&~ ~&180970&~.~&5972374&~ !== ~&5972374&~; + }); + _timerManager.saveAlarms(); + } + + function toggleAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&197092711&~(function(~&180970&~) { + ~&5972376&~ (~&180970&~.~&5972374&~ !== ~&5972374&~) ~&7083121450889&~ ~&180970&~; + ~&7083121450889&~ { ~&5972374&~: ~&180970&~.~&5972374&~, hour: ~&180970&~.hour, minute: ~&180970&~.minute, ~&233726547792244&~: !~&180970&~.~&233726547792244&~ }; + }); + _timerManager.saveAlarms(); + } + + function dismissAlarmNotification() { + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.alarmNotificationText = ""; + } + + function saveAlarms() { + ~&197102514&~ payload = { + alarms: _timerManager.alarms, + nextAlarmId: _timerManager.nextAlarmId, + blinkLightOnNotification: _timerManager.blinkLightOnNotification + }; + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("PUT", "file:///home/root/alarms.json"); + xhr.~&6504279475&~(~&6502785411&~.~&254548178208422824&~(payload)); + } + + function loadAlarms() { + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("GET", "file:///home/root/alarms.json"); + xhr.onreadystatechange = function() { + ~&5972376&~ (xhr.readyState === XMLHttpRequest.DONE) { + try { + ~&197102514&~ ~&6503736259&~ = ~&6502785411&~.parse(xhr.responseText); + _timerManager.alarms = ~&6503736259&~.alarms || []; + _timerManager.nextAlarmId = ~&6503736259&~.nextAlarmId || 1; + _timerManager.blinkLightOnNotification = ~&6503736259&~.blinkLightOnNotification || ~&214625660372&~; + } catch (~&180974&~) { + _timerManager.alarms = []; + _timerManager.nextAlarmId = 1; + } + } + }; + xhr.~&6504279475&~(); + } + + ~&214604601930&~ { + ~&5972374&~: _alarmChecker + ~&7713147298280334&~: 5000 + ~&7083121289162&~: ~&6504329801&~ + ~&233743626668842&~: ~&6504329801&~ + ~&495358363329399331&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + /* Use an absolute epoch-minute (not hour*60+minute) so that a recurring*/ + /* alarm can fire again on the next day instead of being permanently*/ + /* suppressed once it has matched lastNotifiedMinute.*/ + ~&197102514&~ nowMinute = ~&6502909715&~.~&214626058827&~(~&180973&~.getTime() / 60000); + ~&5972376&~ (nowMinute === _timerManager.lastNotifiedMinute) ~&7083121450889&~; + + ~&197102514&~ ~&180977&~ = ~&180973&~.getHours(); + ~&197102514&~ ~&180982&~ = ~&180973&~.getMinutes(); + ~&197085552&~ (~&197102514&~ ~&180978&~ = 0; ~&180978&~ < _timerManager.alarms.~&7082886407723&~; ~&180978&~++) { + ~&197102514&~ ~&180970&~ = _timerManager.alarms[~&180978&~]; + ~&5972376&~ (~&180970&~.~&233726547792244&~ && ~&180970&~.hour === ~&180977&~ && ~&180970&~.minute === ~&180982&~) { + _timerManager.alarmNotificationText = ~&180970&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&180970&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); + _timerManager.~&16765420033347753489&~ = ~&6504329801&~; + _timerManager.lastNotifiedMinute = nowMinute; + ~&214621519406&~; + } + } } - refresh(); } ~&214604601930&~ { @@ -71,6 +165,7 @@ AFFECT [[1658694193319203921]] ~&7713147298280334&~: 100 ~&7083121289162&~: ~&6504329801&~ ~&495358363329399331&~: { + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; ~&5972376&~ (_timerManager.timerMode) { _timerManager.remainMs -= 100; ~&5972376&~ (_timerManager.remainMs <= 0) { @@ -84,6 +179,10 @@ AFFECT [[1658694193319203921]] _timerManager.refresh(); } } + + ~&254480451320573660&~.~&495334332051582499&~: { + _timerManager.loadAlarms(); + } } } END TRAVERSE @@ -93,212 +192,576 @@ AFFECT [[12542166428983872557]] TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]] LOCATE AFTER [[254501558939456351]]#[[8399137618543699982]] INSERT { - ~&425121728314878811&~.~&15740235808997988493&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - } - - ~&14125623155555875541&~ { - ~&5972374&~: _timerUI + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _timerUI.~&2122835675838176157&~ ~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - /* Mode selector tabs */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: 0 + ~&14125623155555875541&~ { + ~&5972374&~: _timerUI + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: ~&"214604601930&~, isTimer: ~&6504329801&~ }, - { ~&197101097&~: "Chrono", isTimer: ~&214625660372&~ } - ] - ~&7712922269353028&~: ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 68 + ~&425121728314878811&~.~&15740235808997988493&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + } - readonly property ~&6503679477&~ ~&7082453764421&~: ~&7082020628281&~.timerManager.timerMode === ~&254539508423767444&~.isTimer + /* Mode selector tabs*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: 0 - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ - ~&6503823200&~.~&254543497768871654&~: 24 - ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.isTimer; - ~&5972376&~ (!~&254539508423767444&~.isTimer) { - ~&7082020628281&~.timerManager.totalMs = 0; - } - ~&7082020628281&~.timerManager.refresh(); + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: ~&"214604601930&~, ~&6504074414&~: ~&"214642551402&~ }, + { ~&197101097&~: "Chrono", ~&6504074414&~: "chrono" }, + { ~&197101097&~: "Alarm", ~&6504074414&~: "alarm" } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 68 + + readonly property ~&6503679477&~ ~&7082453764421&~: ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~ ? !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode + : ~&254539508423767444&~.~&6504074414&~ === "chrono" ? !~&7082020628281&~.timerManager.alarmMode && !~&7082020628281&~.timerManager.timerMode + : ~&7082020628281&~.timerManager.alarmMode + + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 24 + ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "alarm") { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.alarmMode = ~&6504329801&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.alarmMode = ~&214625660372&~; + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~; + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "chrono") { + ~&7082020628281&~.timerManager.totalMs = 0; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + ~&254501108490678590&~ { + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&7082729686082&~: 3 + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } - } - ~&254501108490678590&~ { - ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ - ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ - ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ - ~&7082729686082&~: 3 - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } } } - } - /* Time display (fixed width to avoid resizing) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~ - ~&7081629735527&~.~&7797818826744279624&~: 300 - ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ - ~&6503165774&~ { - ~&5972374&~: _display - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ - ~&6503823200&~.~&254543497768871654&~: 56 - ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight - ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ - ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + /* Time display*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + ~&6503165774&~ { + ~&5972374&~: _display + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ + ~&6503823200&~.~&254543497768871654&~: 56 + ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } } - } - /* Preset buttons (timer mode only) */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode + /* Preset buttons (timer mode only)*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, - { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, - { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, - { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, - { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } - ] - ~&7712922269353028&~: ~&6502786168&~ { + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, + { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, + { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, + { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, + { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; + ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { + ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + } + } + + /* Control buttons*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + + /* Add/Set toggle (timer only)*/ + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode ~&254501108490678590&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&7083116119249&~: 8 - ~&214622605608&~: "#EEEEEE" + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; + } + } + } + + /* Reset*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&"6968812144639225076&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() + } + } + + /* Start / Stop*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ } ~&6503165774&~ { ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" ~&6503823200&~.~&254543497768871654&~: 20 ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); + } + } + } + } + + /* Alarm mode*/ + ~&14125623155555875541&~ { + ~&5972374&~: _alarmCol + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmMode + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 80 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _radioIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _radioIcon.~&214640173127&~ + ~&233721384511543&~.~&214640173127&~: _trashIcon.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&490371291080887915&~: 12 + ~&16491662607465103678&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 28 + ~&6503823200&~.~&7083316716977&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&6502673216&~.~&6502529386&~ : ~&6502673216&~.~&7081724354802&~ + ~&214622605608&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _trashIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&6503165774&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarms.~&7082886407723&~ === 0 + ~&6504315758&~: "No alarms set" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&214622605608&~: "#888888" + ~&8400129142283184211&~: 20 + ~&1353514028756047605&~: 20 + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Add alarms" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } ~&254494525842443467&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; - ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { - ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; - } ~&6503784146&~ { - ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; - } - ~&7082020628281&~.timerManager.refresh(); + ~&6504254477&~.~&2766288418351025740&~.~&214622501183&~(); + ~&6504254477&~.~&2766288418351025740&~.~&6504147419&~(~&"3271012201642534810&~); } } } } } - - /* Control buttons */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - - /* Add/Set toggle (timer only) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; - } - } - } - - /* Reset */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&"6968812144639225076&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() - } - } - - /* Start / Stop */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ - } - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" - ~&6503823200&~.~&254543497768871654&~: 20 - ~&6503823200&~.~&6503679370&~: ~&6504329801&~ - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); - } - } - } - } } } END TRAVERSE END AFFECT -; Notification bar when timer finishes - visible in all modes +; Alarm management inside system clock settings (inserted before the info message for more space) +AFFECT /qt/qml/xofm/modules/systemclock/qml/window/SettingsInfoWindow.qml + TRAVERSE [[7711468349764991]]#[[6504254477]] > [[8397788359424131273]] > [[14125623155555875541]]#[[8399784311425937276]] + LOCATE AFTER [[425121728314878811.214599571833]]#[[254526274719339159]] + INSERT { + ~&425121728314878811&~.~&214604609771&~ { + ~&6504315758&~: "Alarms" + ~&6504337259&~: ~&425121728314878811&~.~&214604609771&~.~&214594832564&~ + ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&233748750575870&~ + } + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 56 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _alarmIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 40 + ~&7082729686082&~: 40 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7424604169206955460&~ + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _alarmIcon.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&233721384511543&~.~&1765033595104803723&~: 1 + ~&490371291080887915&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 24 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _toggleAlarmIcon + ~&233721384511543&~.~&214640173127&~: _deleteAlarmIcon.~&6504027668&~ + ~&233721384511543&~.~&499747351624466981&~: 12 + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _deleteAlarmIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&5972374&~: _addAlarmPanel + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Add alarm" + ~&8399601734642709923&~: ~&"15094524446772001204&~ + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504337259&~: ~&254477762679831355&~.~&7081261925573&~.~&254547519794454865&~ + ~&6504315758&~: ~&6504222003&~("Add") + ~&254542236275632405&~: { + _addAlarmPanel.~&9195823055201242195&~ = !_addAlarmPanel.~&9195823055201242195&~; + } + } + ~&9195823055201242195&~: ~&214625660372&~ + ~&8399254548634699250&~: ~&14125623155555875541&~ { + ~&214646099849&~: _addAlarmPanel.~&214646099849&~ + ~&233744706647566&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 280 + + ~&14975672296977510442&~ { + ~&5972374&~: _alarmTimeSpinners + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: _nowBtn.~&6504027668&~ + ~&233721384511543&~.~&197100796&~: ~&7083038346995&~.~&197100796&~ + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&499747351624466981&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + ~&214628545114&~: 8 + ~&233736699967534&~: 0 + ~&8399894257374503713&~: function(~&180977&~) { _alarmTimeSpinners.~&214628545114&~ = ~&180977&~; } + ~&16346529800820831925&~: function(~&180982&~) { _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; } + } + + ~&6502786168&~ { + ~&5972374&~: _nowBtn + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 80 + ~&7082729686082&~: 48 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Now" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + _alarmTimeSpinners.~&214628545114&~ = ~&180973&~.getHours(); + _alarmTimeSpinners.~&233736699967534&~ = ~&180973&~.getMinutes(); + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [0, 15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + _alarmTimeSpinners.~&233736699967534&~ = ~&254539508423767444&~; + } + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&"180916&~ + ~&254539508423767444&~ + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180982&~ = _alarmTimeSpinners.~&233736699967534&~ + ~&254539508423767444&~; + ~&5972376&~ (~&180982&~ >= 60) { ~&180982&~ -= 60; } + _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; + } + } + } + } + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Save alarm" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addAlarm(_alarmTimeSpinners.~&214628545114&~, _alarmTimeSpinners.~&233736699967534&~); + _addAlarmPanel.~&9195823055201242195&~ = ~&214625660372&~; + } + } + } + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Flash light" + ~&478136262235079021&~: "Blink the reading light when the timer ends or an alarm triggers" + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504315758&~: ~&7082020628281&~.timerManager.blinkLightOnNotification ? ~&"5971526&~ : ~&"197060196&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.blinkLightOnNotification = !~&7082020628281&~.timerManager.blinkLightOnNotification + } + } + } + END TRAVERSE +END AFFECT + +; Notification bar for timer finish and alarm triggers AFFECT [[2328484894988065446]] IMPORT [[233700934949963.233693781272506]] [[180922.180921]] + IMPORT [[6504469795.233736922911970.214633057601.214626274418]] [[180922.180921]] TRAVERSE [[8397788359424131273]]#[[6504254477]] > [[8397993708429497603]]#[[7713531976371484]] LOCATE AFTER ALL @@ -308,16 +771,51 @@ AFFECT [[2328484894988065446]] ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ ~&233748328658231&~: ~&7082020628281&~.timerManager.~&16765420033347753489&~ + + ~&13733777459642361598&~: { + ~&5972376&~ (~&233748328658231&~ && ~&7082020628281&~.timerManager.blinkLightOnNotification) { + _blinkTimer.~&6504295855&~(); + _blinkTimer.~&214618014052&~ = 0; + _blinkTimer.~&214641748151&~(); + } + } + + ~&214604601930&~ { + ~&5972374&~: _blinkTimer + ~&7713147298280334&~: 1000 /* 1 sec*/ + ~&7083121289162&~: ~&6504329801&~ + property ~&197088788&~ ~&214618014052&~: 0 + property ~&6504243117&~ _savedValue: 0 + ~&495358363329399331&~: { + ~&197102514&~ l = ~&7082020628281&~.timerManager._blinkLight; + ~&5972376&~ (!l) { ~&6504295855&~(); ~&7083121450889&~; } + ~&5972376&~ (~&214618014052&~ >= 6) { + ~&6504295855&~(); + l.~&214644635174&~ = _savedValue; + ~&214618014052&~ = 0; + ~&7083121450889&~; + } + ~&5972376&~ (~&214618014052&~ === 0) { + _savedValue = l.~&214644635174&~; + } + l.~&214644635174&~ = ~&214618014052&~ % 2 === 0 ? 100 : 0; + ~&214618014052&~++; + } + } ~&6504337259&~: ~&254477762679831355&~.~&11119534664549952261&~.~&233740920352621&~ ~&425121728314878811&~.~&11119534664549952261&~.~&233695222288046&~ { - ~&6504315758&~: "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" + ? "Alarm at " + ~&7082020628281&~.timerManager.alarmNotificationText + : "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ ~&7081629735527&~.~&8399743405844438450&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ } + /* Timer buttons - hidden during alarm*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: ~&"233701679664206&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.doReset(); @@ -325,9 +823,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+1min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 60000; @@ -337,9 +838,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+5min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 300000; @@ -349,15 +853,32 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } + /* Universal Close / Dismiss*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { - ~&6504315758&~: ~&"214584551711&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" ? ~&"233683755411397&~ : ~&"214584551711&~ ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (~&7082020628281&~.timerManager.alarmNotificationText !== "") { + ~&7082020628281&~.timerManager.dismissAlarmNotification(); + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + } } } } } END TRAVERSE END AFFECT + +; Capture Light reference from the QuickSettingsSlider so we can blink it +AFFECT [[9830508555522680663]] + TRAVERSE [[425121728314878811.7081916140908]]#[[6504254477]] + LOCATE AFTER ALL + INSERT { + ~&254480451320573660&~.~&495334332051582499&~: ~&7082020628281&~.timerManager._blinkLight = ~&6504254477&~.~&214633057601&~; + } + END TRAVERSE +END AFFECT diff --git a/3.25.1.1/quickSettingsTimer.qmd b/3.25.1.1/quickSettingsTimer.qmd index 5d79679..9c415cf 100644 --- a/3.25.1.1/quickSettingsTimer.qmd +++ b/3.25.1.1/quickSettingsTimer.qmd @@ -1,5 +1,5 @@ -; Quick Settings Timer/Chrono -; Adds a countdown timer and stopwatch to the quick settings panel +; Quick Settings Timer/Chrono/Alarm +; Adds a countdown timer, stopwatch, and alarm system to the quick settings panel ; Timer state lives in Values.timerManager so it persists across menu opens/closes AFFECT [[1658694193319203921]] @@ -18,6 +18,15 @@ AFFECT [[1658694193319203921]] property ~&6503679477&~ ~&16765420033347753489&~: ~&214625660372&~ property ~&197088788&~ presetMs: 60000 property ~&6503679477&~ addMode: ~&6504329801&~ + property ~&6503679477&~ blinkLightOnNotification: ~&214625660372&~ + property ~&197102514&~ _blinkLight: ~&6504117156&~ + + /* Alarm state*/ + property ~&6503679477&~ alarmMode: ~&214625660372&~ + property ~&197102514&~ alarms: [] + property ~&197088788&~ nextAlarmId: 1 + property ~&7083178290016&~ alarmNotificationText: "" + property ~&197088788&~ lastNotifiedMinute: -1 /* absolute epoch-minute of the last fired alarm*/ function fmt(ms) { ~&197102514&~ ~&180970&~ = ~&6502909715&~.~&197079679&~(ms); @@ -26,7 +35,6 @@ AFFECT [[1658694193319203921]] ~&197102514&~ ~&180988&~ = ~&6502909715&~.~&214626058827&~((~&180970&~ % 60000) / 1000); ~&197102514&~ mm = ~&180982&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); ~&197102514&~ ss = ~&180988&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); - ~&5972376&~ (~&180977&~ > 0) { ~&7083121450889&~ ~&180977&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + mm + ~&"180931&~ + ss; } @@ -34,36 +42,122 @@ AFFECT [[1658694193319203921]] } function refresh() { - ~&5972376&~ (timerMode) { - ~&478322454160073828&~ = fmt(remainMs > 0 ? remainMs : 0); + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.remainMs > 0 ? _timerManager.remainMs : 0); } ~&6503784146&~ { - ~&478322454160073828&~ = fmt(totalMs); + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.totalMs); } } function go() { - ~&5972376&~ (timerMode) { - ~&5972376&~ (remainMs <= 0) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + ~&5972376&~ (_timerManager.remainMs <= 0) ~&7083121450889&~; } - ~&16765420033347753489&~ = ~&214625660372&~; - isRunning = ~&6504329801&~; + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.isRunning = ~&6504329801&~; _tick.~&214641748151&~(); } function ~&6504295855&~() { - isRunning = ~&214625660372&~; + _timerManager.isRunning = ~&214625660372&~; _tick.~&6504295855&~(); } function doReset() { - ~&6504295855&~(); - ~&16765420033347753489&~ = ~&214625660372&~; - ~&5972376&~ (timerMode) { - remainMs = totalMs; + _timerManager.~&6504295855&~(); + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.remainMs = _timerManager.totalMs; } ~&6503784146&~ { - totalMs = 0; + _timerManager.totalMs = 0; + } + _timerManager.refresh(); + } + + /* Alarm management*/ + function addAlarm(~&180977&~, ~&180982&~) { + ~&197102514&~ ~&180970&~ = { ~&5972374&~: _timerManager.nextAlarmId, hour: ~&180977&~, minute: ~&180982&~, ~&233726547792244&~: ~&6504329801&~ }; + _timerManager.alarms = _timerManager.alarms.~&7082546043425&~([~&180970&~]); + _timerManager.nextAlarmId++; + _timerManager.saveAlarms(); + } + + function removeAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&7082656280847&~(function(~&180970&~) { + ~&7083121450889&~ ~&180970&~.~&5972374&~ !== ~&5972374&~; + }); + _timerManager.saveAlarms(); + } + + function toggleAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&197092711&~(function(~&180970&~) { + ~&5972376&~ (~&180970&~.~&5972374&~ !== ~&5972374&~) ~&7083121450889&~ ~&180970&~; + ~&7083121450889&~ { ~&5972374&~: ~&180970&~.~&5972374&~, hour: ~&180970&~.hour, minute: ~&180970&~.minute, ~&233726547792244&~: !~&180970&~.~&233726547792244&~ }; + }); + _timerManager.saveAlarms(); + } + + function dismissAlarmNotification() { + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.alarmNotificationText = ""; + } + + function saveAlarms() { + ~&197102514&~ payload = { + alarms: _timerManager.alarms, + nextAlarmId: _timerManager.nextAlarmId, + blinkLightOnNotification: _timerManager.blinkLightOnNotification + }; + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("PUT", "file:///home/root/alarms.json"); + xhr.~&6504279475&~(~&6502785411&~.~&254548178208422824&~(payload)); + } + + function loadAlarms() { + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("GET", "file:///home/root/alarms.json"); + xhr.onreadystatechange = function() { + ~&5972376&~ (xhr.readyState === XMLHttpRequest.DONE) { + try { + ~&197102514&~ ~&6503736259&~ = ~&6502785411&~.parse(xhr.responseText); + _timerManager.alarms = ~&6503736259&~.alarms || []; + _timerManager.nextAlarmId = ~&6503736259&~.nextAlarmId || 1; + _timerManager.blinkLightOnNotification = ~&6503736259&~.blinkLightOnNotification || ~&214625660372&~; + } catch (~&180974&~) { + _timerManager.alarms = []; + _timerManager.nextAlarmId = 1; + } + } + }; + xhr.~&6504279475&~(); + } + + ~&214604601930&~ { + ~&5972374&~: _alarmChecker + ~&7713147298280334&~: 5000 + ~&7083121289162&~: ~&6504329801&~ + ~&233743626668842&~: ~&6504329801&~ + ~&495358363329399331&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + /* Use an absolute epoch-minute (not hour*60+minute) so that a recurring*/ + /* alarm can fire again on the next day instead of being permanently*/ + /* suppressed once it has matched lastNotifiedMinute.*/ + ~&197102514&~ nowMinute = ~&6502909715&~.~&214626058827&~(~&180973&~.getTime() / 60000); + ~&5972376&~ (nowMinute === _timerManager.lastNotifiedMinute) ~&7083121450889&~; + + ~&197102514&~ ~&180977&~ = ~&180973&~.getHours(); + ~&197102514&~ ~&180982&~ = ~&180973&~.getMinutes(); + ~&197085552&~ (~&197102514&~ ~&180978&~ = 0; ~&180978&~ < _timerManager.alarms.~&7082886407723&~; ~&180978&~++) { + ~&197102514&~ ~&180970&~ = _timerManager.alarms[~&180978&~]; + ~&5972376&~ (~&180970&~.~&233726547792244&~ && ~&180970&~.hour === ~&180977&~ && ~&180970&~.minute === ~&180982&~) { + _timerManager.alarmNotificationText = ~&180970&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&180970&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); + _timerManager.~&16765420033347753489&~ = ~&6504329801&~; + _timerManager.lastNotifiedMinute = nowMinute; + ~&214621519406&~; + } + } } - refresh(); } ~&214604601930&~ { @@ -71,6 +165,7 @@ AFFECT [[1658694193319203921]] ~&7713147298280334&~: 100 ~&7083121289162&~: ~&6504329801&~ ~&495358363329399331&~: { + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; ~&5972376&~ (_timerManager.timerMode) { _timerManager.remainMs -= 100; ~&5972376&~ (_timerManager.remainMs <= 0) { @@ -84,6 +179,10 @@ AFFECT [[1658694193319203921]] _timerManager.refresh(); } } + + ~&254480451320573660&~.~&495334332051582499&~: { + _timerManager.loadAlarms(); + } } } END TRAVERSE @@ -93,212 +192,576 @@ AFFECT [[12542166428983872557]] TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]] LOCATE AFTER [[254501558939456351]]#[[8399137618543699982]] INSERT { - ~&425121728314878811&~.~&15740235808997988493&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - } - - ~&14125623155555875541&~ { - ~&5972374&~: _timerUI + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _timerUI.~&2122835675838176157&~ ~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - /* Mode selector tabs */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: 0 + ~&14125623155555875541&~ { + ~&5972374&~: _timerUI + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: ~&"214604601930&~, isTimer: ~&6504329801&~ }, - { ~&197101097&~: "Chrono", isTimer: ~&214625660372&~ } - ] - ~&7712922269353028&~: ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 68 + ~&425121728314878811&~.~&15740235808997988493&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + } - readonly property ~&6503679477&~ ~&7082453764421&~: ~&7082020628281&~.timerManager.timerMode === ~&254539508423767444&~.isTimer + /* Mode selector tabs*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: 0 - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ - ~&6503823200&~.~&254543497768871654&~: 24 - ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.isTimer; - ~&5972376&~ (!~&254539508423767444&~.isTimer) { - ~&7082020628281&~.timerManager.totalMs = 0; - } - ~&7082020628281&~.timerManager.refresh(); + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: ~&"214604601930&~, ~&6504074414&~: ~&"214642551402&~ }, + { ~&197101097&~: "Chrono", ~&6504074414&~: "chrono" }, + { ~&197101097&~: "Alarm", ~&6504074414&~: "alarm" } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 68 + + readonly property ~&6503679477&~ ~&7082453764421&~: ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~ ? !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode + : ~&254539508423767444&~.~&6504074414&~ === "chrono" ? !~&7082020628281&~.timerManager.alarmMode && !~&7082020628281&~.timerManager.timerMode + : ~&7082020628281&~.timerManager.alarmMode + + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 24 + ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "alarm") { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.alarmMode = ~&6504329801&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.alarmMode = ~&214625660372&~; + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~; + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "chrono") { + ~&7082020628281&~.timerManager.totalMs = 0; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + ~&254501108490678590&~ { + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&7082729686082&~: 3 + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } - } - ~&254501108490678590&~ { - ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ - ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ - ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ - ~&7082729686082&~: 3 - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } } } - } - /* Time display (fixed width to avoid resizing) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~ - ~&7081629735527&~.~&7797818826744279624&~: 300 - ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ - ~&6503165774&~ { - ~&5972374&~: _display - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ - ~&6503823200&~.~&254543497768871654&~: 56 - ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight - ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ - ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + /* Time display*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + ~&6503165774&~ { + ~&5972374&~: _display + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ + ~&6503823200&~.~&254543497768871654&~: 56 + ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } } - } - /* Preset buttons (timer mode only) */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode + /* Preset buttons (timer mode only)*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, - { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, - { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, - { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, - { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } - ] - ~&7712922269353028&~: ~&6502786168&~ { + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, + { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, + { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, + { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, + { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; + ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { + ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + } + } + + /* Control buttons*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + + /* Add/Set toggle (timer only)*/ + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode ~&254501108490678590&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&7083116119249&~: 8 - ~&214622605608&~: "#EEEEEE" + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; + } + } + } + + /* Reset*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&"6968812144639225076&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() + } + } + + /* Start / Stop*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ } ~&6503165774&~ { ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" ~&6503823200&~.~&254543497768871654&~: 20 ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); + } + } + } + } + + /* Alarm mode*/ + ~&14125623155555875541&~ { + ~&5972374&~: _alarmCol + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmMode + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 80 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _radioIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _radioIcon.~&214640173127&~ + ~&233721384511543&~.~&214640173127&~: _trashIcon.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&490371291080887915&~: 12 + ~&16491662607465103678&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 28 + ~&6503823200&~.~&7083316716977&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&6502673216&~.~&6502529386&~ : ~&6502673216&~.~&7081724354802&~ + ~&214622605608&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _trashIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&6503165774&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarms.~&7082886407723&~ === 0 + ~&6504315758&~: "No alarms set" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&214622605608&~: "#888888" + ~&8400129142283184211&~: 20 + ~&1353514028756047605&~: 20 + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Add alarms" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } ~&254494525842443467&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; - ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { - ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; - } ~&6503784146&~ { - ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; - } - ~&7082020628281&~.timerManager.refresh(); + ~&6504254477&~.~&2766288418351025740&~.~&214622501183&~(); + ~&6504254477&~.~&2766288418351025740&~.~&6504147419&~(~&"3271012201642534810&~); } } } } } - - /* Control buttons */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - - /* Add/Set toggle (timer only) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; - } - } - } - - /* Reset */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&"6968812144639225076&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() - } - } - - /* Start / Stop */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ - } - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" - ~&6503823200&~.~&254543497768871654&~: 20 - ~&6503823200&~.~&6503679370&~: ~&6504329801&~ - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); - } - } - } - } } } END TRAVERSE END AFFECT -; Notification bar when timer finishes - visible in all modes +; Alarm management inside system clock settings (inserted before the info message for more space) +AFFECT /qt/qml/xofm/modules/systemclock/qml/window/SettingsInfoWindow.qml + TRAVERSE [[7711468349764991]]#[[6504254477]] > [[8397788359424131273]] > [[14125623155555875541]]#[[8399784311425937276]] + LOCATE AFTER [[425121728314878811.214599571833]]#[[254526274719339159]] + INSERT { + ~&425121728314878811&~.~&214604609771&~ { + ~&6504315758&~: "Alarms" + ~&6504337259&~: ~&425121728314878811&~.~&214604609771&~.~&214594832564&~ + ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&233748750575870&~ + } + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 56 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _alarmIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 40 + ~&7082729686082&~: 40 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7424604169206955460&~ + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _alarmIcon.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&233721384511543&~.~&1765033595104803723&~: 1 + ~&490371291080887915&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 24 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _toggleAlarmIcon + ~&233721384511543&~.~&214640173127&~: _deleteAlarmIcon.~&6504027668&~ + ~&233721384511543&~.~&499747351624466981&~: 12 + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _deleteAlarmIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&5972374&~: _addAlarmPanel + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Add alarm" + ~&8399601734642709923&~: ~&"15094524446772001204&~ + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504337259&~: ~&254477762679831355&~.~&7081261925573&~.~&254547519794454865&~ + ~&6504315758&~: ~&6504222003&~("Add") + ~&254542236275632405&~: { + _addAlarmPanel.~&9195823055201242195&~ = !_addAlarmPanel.~&9195823055201242195&~; + } + } + ~&9195823055201242195&~: ~&214625660372&~ + ~&8399254548634699250&~: ~&14125623155555875541&~ { + ~&214646099849&~: _addAlarmPanel.~&214646099849&~ + ~&233744706647566&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 280 + + ~&14975672296977510442&~ { + ~&5972374&~: _alarmTimeSpinners + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: _nowBtn.~&6504027668&~ + ~&233721384511543&~.~&197100796&~: ~&7083038346995&~.~&197100796&~ + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&499747351624466981&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + ~&214628545114&~: 8 + ~&233736699967534&~: 0 + ~&8399894257374503713&~: function(~&180977&~) { _alarmTimeSpinners.~&214628545114&~ = ~&180977&~; } + ~&16346529800820831925&~: function(~&180982&~) { _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; } + } + + ~&6502786168&~ { + ~&5972374&~: _nowBtn + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 80 + ~&7082729686082&~: 48 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Now" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + _alarmTimeSpinners.~&214628545114&~ = ~&180973&~.getHours(); + _alarmTimeSpinners.~&233736699967534&~ = ~&180973&~.getMinutes(); + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [0, 15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + _alarmTimeSpinners.~&233736699967534&~ = ~&254539508423767444&~; + } + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&"180916&~ + ~&254539508423767444&~ + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180982&~ = _alarmTimeSpinners.~&233736699967534&~ + ~&254539508423767444&~; + ~&5972376&~ (~&180982&~ >= 60) { ~&180982&~ -= 60; } + _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; + } + } + } + } + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Save alarm" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addAlarm(_alarmTimeSpinners.~&214628545114&~, _alarmTimeSpinners.~&233736699967534&~); + _addAlarmPanel.~&9195823055201242195&~ = ~&214625660372&~; + } + } + } + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Flash light" + ~&478136262235079021&~: "Blink the reading light when the timer ends or an alarm triggers" + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504315758&~: ~&7082020628281&~.timerManager.blinkLightOnNotification ? ~&"5971526&~ : ~&"197060196&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.blinkLightOnNotification = !~&7082020628281&~.timerManager.blinkLightOnNotification + } + } + } + END TRAVERSE +END AFFECT + +; Notification bar for timer finish and alarm triggers AFFECT [[2328484894988065446]] IMPORT [[233700934949963.233693781272506]] [[180922.180921]] + IMPORT [[6504469795.233736922911970.214633057601.214626274418]] [[180922.180921]] TRAVERSE [[8397788359424131273]]#[[6504254477]] > [[8397993708429497603]]#[[7713531976371484]] LOCATE AFTER ALL @@ -308,16 +771,51 @@ AFFECT [[2328484894988065446]] ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ ~&233748328658231&~: ~&7082020628281&~.timerManager.~&16765420033347753489&~ + + ~&13733777459642361598&~: { + ~&5972376&~ (~&233748328658231&~ && ~&7082020628281&~.timerManager.blinkLightOnNotification) { + _blinkTimer.~&6504295855&~(); + _blinkTimer.~&214618014052&~ = 0; + _blinkTimer.~&214641748151&~(); + } + } + + ~&214604601930&~ { + ~&5972374&~: _blinkTimer + ~&7713147298280334&~: 1000 /* 1 sec*/ + ~&7083121289162&~: ~&6504329801&~ + property ~&197088788&~ ~&214618014052&~: 0 + property ~&6504243117&~ _savedValue: 0 + ~&495358363329399331&~: { + ~&197102514&~ l = ~&7082020628281&~.timerManager._blinkLight; + ~&5972376&~ (!l) { ~&6504295855&~(); ~&7083121450889&~; } + ~&5972376&~ (~&214618014052&~ >= 6) { + ~&6504295855&~(); + l.~&214644635174&~ = _savedValue; + ~&214618014052&~ = 0; + ~&7083121450889&~; + } + ~&5972376&~ (~&214618014052&~ === 0) { + _savedValue = l.~&214644635174&~; + } + l.~&214644635174&~ = ~&214618014052&~ % 2 === 0 ? 100 : 0; + ~&214618014052&~++; + } + } ~&6504337259&~: ~&254477762679831355&~.~&11119534664549952261&~.~&233740920352621&~ ~&425121728314878811&~.~&11119534664549952261&~.~&233695222288046&~ { - ~&6504315758&~: "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" + ? "Alarm at " + ~&7082020628281&~.timerManager.alarmNotificationText + : "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ ~&7081629735527&~.~&8399743405844438450&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ } + /* Timer buttons - hidden during alarm*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: ~&"233701679664206&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.doReset(); @@ -325,9 +823,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+1min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 60000; @@ -337,9 +838,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+5min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 300000; @@ -349,15 +853,32 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } + /* Universal Close / Dismiss*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { - ~&6504315758&~: ~&"214584551711&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" ? ~&"233683755411397&~ : ~&"214584551711&~ ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (~&7082020628281&~.timerManager.alarmNotificationText !== "") { + ~&7082020628281&~.timerManager.dismissAlarmNotification(); + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + } } } } } END TRAVERSE END AFFECT + +; Capture Light reference from the QuickSettingsSlider so we can blink it +AFFECT [[9830508555522680663]] + TRAVERSE [[425121728314878811.7081916140908]]#[[6504254477]] + LOCATE AFTER ALL + INSERT { + ~&254480451320573660&~.~&495334332051582499&~: ~&7082020628281&~.timerManager._blinkLight = ~&6504254477&~.~&214633057601&~; + } + END TRAVERSE +END AFFECT diff --git a/3.26.0.68/quickSettingsTimer.qmd b/3.26.0.68/quickSettingsTimer.qmd index 5d79679..25b15a8 100644 --- a/3.26.0.68/quickSettingsTimer.qmd +++ b/3.26.0.68/quickSettingsTimer.qmd @@ -1,5 +1,5 @@ -; Quick Settings Timer/Chrono -; Adds a countdown timer and stopwatch to the quick settings panel +; Quick Settings Timer/Chrono/Alarm +; Adds a countdown timer, stopwatch, and alarm system to the quick settings panel ; Timer state lives in Values.timerManager so it persists across menu opens/closes AFFECT [[1658694193319203921]] @@ -18,6 +18,15 @@ AFFECT [[1658694193319203921]] property ~&6503679477&~ ~&16765420033347753489&~: ~&214625660372&~ property ~&197088788&~ presetMs: 60000 property ~&6503679477&~ addMode: ~&6504329801&~ + property ~&6503679477&~ blinkLightOnNotification: ~&214625660372&~ + property ~&197102514&~ _blinkLight: ~&6504117156&~ + + /* Alarm state*/ + property ~&6503679477&~ alarmMode: ~&214625660372&~ + property ~&197102514&~ alarms: [] + property ~&197088788&~ nextAlarmId: 1 + property ~&7083178290016&~ alarmNotificationText: "" + property ~&197088788&~ lastNotifiedMinute: -1 /* absolute epoch-minute of the last fired alarm*/ function fmt(ms) { ~&197102514&~ ~&180970&~ = ~&6502909715&~.~&197079679&~(ms); @@ -26,7 +35,6 @@ AFFECT [[1658694193319203921]] ~&197102514&~ ~&180988&~ = ~&6502909715&~.~&214626058827&~((~&180970&~ % 60000) / 1000); ~&197102514&~ mm = ~&180982&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); ~&197102514&~ ss = ~&180988&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); - ~&5972376&~ (~&180977&~ > 0) { ~&7083121450889&~ ~&180977&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + mm + ~&"180931&~ + ss; } @@ -34,36 +42,122 @@ AFFECT [[1658694193319203921]] } function refresh() { - ~&5972376&~ (timerMode) { - ~&478322454160073828&~ = fmt(remainMs > 0 ? remainMs : 0); + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.remainMs > 0 ? _timerManager.remainMs : 0); } ~&6503784146&~ { - ~&478322454160073828&~ = fmt(totalMs); + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.totalMs); } } function go() { - ~&5972376&~ (timerMode) { - ~&5972376&~ (remainMs <= 0) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + ~&5972376&~ (_timerManager.remainMs <= 0) ~&7083121450889&~; } - ~&16765420033347753489&~ = ~&214625660372&~; - isRunning = ~&6504329801&~; + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.isRunning = ~&6504329801&~; _tick.~&214641748151&~(); } function ~&6504295855&~() { - isRunning = ~&214625660372&~; + _timerManager.isRunning = ~&214625660372&~; _tick.~&6504295855&~(); } function doReset() { - ~&6504295855&~(); - ~&16765420033347753489&~ = ~&214625660372&~; - ~&5972376&~ (timerMode) { - remainMs = totalMs; + _timerManager.~&6504295855&~(); + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.remainMs = _timerManager.totalMs; } ~&6503784146&~ { - totalMs = 0; + _timerManager.totalMs = 0; + } + _timerManager.refresh(); + } + + /* Alarm management*/ + function addAlarm(~&180977&~, ~&180982&~) { + ~&197102514&~ ~&180970&~ = { ~&5972374&~: _timerManager.nextAlarmId, hour: ~&180977&~, minute: ~&180982&~, ~&233726547792244&~: ~&6504329801&~ }; + _timerManager.alarms = _timerManager.alarms.~&7082546043425&~([~&180970&~]); + _timerManager.nextAlarmId++; + _timerManager.saveAlarms(); + } + + function removeAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&7082656280847&~(function(~&180970&~) { + ~&7083121450889&~ ~&180970&~.~&5972374&~ !== ~&5972374&~; + }); + _timerManager.saveAlarms(); + } + + function toggleAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&197092711&~(function(~&180970&~) { + ~&5972376&~ (~&180970&~.~&5972374&~ !== ~&5972374&~) ~&7083121450889&~ ~&180970&~; + ~&7083121450889&~ { ~&5972374&~: ~&180970&~.~&5972374&~, hour: ~&180970&~.hour, minute: ~&180970&~.minute, ~&233726547792244&~: !~&180970&~.~&233726547792244&~ }; + }); + _timerManager.saveAlarms(); + } + + function dismissAlarmNotification() { + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.alarmNotificationText = ""; + } + + function saveAlarms() { + ~&197102514&~ payload = { + alarms: _timerManager.alarms, + nextAlarmId: _timerManager.nextAlarmId, + blinkLightOnNotification: _timerManager.blinkLightOnNotification + }; + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("PUT", "file:///home/root/alarms.json"); + xhr.~&6504279475&~(~&6502785411&~.~&254548178208422824&~(payload)); + } + + function loadAlarms() { + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("GET", "file:///home/root/alarms.json"); + xhr.onreadystatechange = function() { + ~&5972376&~ (xhr.readyState === XMLHttpRequest.DONE) { + try { + ~&197102514&~ ~&6503736259&~ = ~&6502785411&~.parse(xhr.responseText); + _timerManager.alarms = ~&6503736259&~.alarms || []; + _timerManager.nextAlarmId = ~&6503736259&~.nextAlarmId || 1; + _timerManager.blinkLightOnNotification = ~&6503736259&~.blinkLightOnNotification || ~&214625660372&~; + } catch (~&180974&~) { + _timerManager.alarms = []; + _timerManager.nextAlarmId = 1; + } + } + }; + xhr.~&6504279475&~(); + } + + ~&214604601930&~ { + ~&5972374&~: _alarmChecker + ~&7713147298280334&~: 5000 + ~&7083121289162&~: ~&6504329801&~ + ~&233743626668842&~: ~&6504329801&~ + ~&495358363329399331&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + /* Use an absolute epoch-minute (not hour*60+minute) so that a recurring*/ + /* alarm can fire again on the next day instead of being permanently*/ + /* suppressed once it has matched lastNotifiedMinute.*/ + ~&197102514&~ nowMinute = ~&6502909715&~.~&214626058827&~(~&180973&~.getTime() / 60000); + ~&5972376&~ (nowMinute === _timerManager.lastNotifiedMinute) ~&7083121450889&~; + + ~&197102514&~ ~&180977&~ = ~&180973&~.getHours(); + ~&197102514&~ ~&180982&~ = ~&180973&~.getMinutes(); + ~&197085552&~ (~&197102514&~ ~&180978&~ = 0; ~&180978&~ < _timerManager.alarms.~&7082886407723&~; ~&180978&~++) { + ~&197102514&~ ~&180970&~ = _timerManager.alarms[~&180978&~]; + ~&5972376&~ (~&180970&~.~&233726547792244&~ && ~&180970&~.hour === ~&180977&~ && ~&180970&~.minute === ~&180982&~) { + _timerManager.alarmNotificationText = ~&180970&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&180970&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); + _timerManager.~&16765420033347753489&~ = ~&6504329801&~; + _timerManager.lastNotifiedMinute = nowMinute; + ~&214621519406&~; + } + } } - refresh(); } ~&214604601930&~ { @@ -71,6 +165,7 @@ AFFECT [[1658694193319203921]] ~&7713147298280334&~: 100 ~&7083121289162&~: ~&6504329801&~ ~&495358363329399331&~: { + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; ~&5972376&~ (_timerManager.timerMode) { _timerManager.remainMs -= 100; ~&5972376&~ (_timerManager.remainMs <= 0) { @@ -84,6 +179,10 @@ AFFECT [[1658694193319203921]] _timerManager.refresh(); } } + + ~&254480451320573660&~.~&495334332051582499&~: { + _timerManager.loadAlarms(); + } } } END TRAVERSE @@ -93,212 +192,576 @@ AFFECT [[12542166428983872557]] TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]] LOCATE AFTER [[254501558939456351]]#[[8399137618543699982]] INSERT { - ~&425121728314878811&~.~&15740235808997988493&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - } - - ~&14125623155555875541&~ { - ~&5972374&~: _timerUI + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _timerUI.~&2122835675838176157&~ ~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - /* Mode selector tabs */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: 0 + ~&14125623155555875541&~ { + ~&5972374&~: _timerUI + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: ~&"214604601930&~, isTimer: ~&6504329801&~ }, - { ~&197101097&~: "Chrono", isTimer: ~&214625660372&~ } - ] - ~&7712922269353028&~: ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 68 + ~&425121728314878811&~.~&15740235808997988493&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + } - readonly property ~&6503679477&~ ~&7082453764421&~: ~&7082020628281&~.timerManager.timerMode === ~&254539508423767444&~.isTimer + /* Mode selector tabs*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: 0 - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ - ~&6503823200&~.~&254543497768871654&~: 24 - ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.isTimer; - ~&5972376&~ (!~&254539508423767444&~.isTimer) { - ~&7082020628281&~.timerManager.totalMs = 0; - } - ~&7082020628281&~.timerManager.refresh(); + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: ~&"214604601930&~, ~&6504074414&~: ~&"214642551402&~ }, + { ~&197101097&~: "Chrono", ~&6504074414&~: "chrono" }, + { ~&197101097&~: "Alarm", ~&6504074414&~: "alarm" } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 68 + + readonly property ~&6503679477&~ ~&7082453764421&~: ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~ ? !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode + : ~&254539508423767444&~.~&6504074414&~ === "chrono" ? !~&7082020628281&~.timerManager.alarmMode && !~&7082020628281&~.timerManager.timerMode + : ~&7082020628281&~.timerManager.alarmMode + + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 24 + ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "alarm") { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.alarmMode = ~&6504329801&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.alarmMode = ~&214625660372&~; + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~; + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "chrono") { + ~&7082020628281&~.timerManager.totalMs = 0; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + ~&254501108490678590&~ { + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&7082729686082&~: 3 + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } - } - ~&254501108490678590&~ { - ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ - ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ - ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ - ~&7082729686082&~: 3 - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } } } - } - /* Time display (fixed width to avoid resizing) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~ - ~&7081629735527&~.~&7797818826744279624&~: 300 - ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ - ~&6503165774&~ { - ~&5972374&~: _display - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ - ~&6503823200&~.~&254543497768871654&~: 56 - ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight - ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ - ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + /* Time display*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + ~&6503165774&~ { + ~&5972374&~: _display + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ + ~&6503823200&~.~&254543497768871654&~: 56 + ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } } - } - /* Preset buttons (timer mode only) */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode + /* Preset buttons (timer mode only)*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, - { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, - { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, - { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, - { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } - ] - ~&7712922269353028&~: ~&6502786168&~ { + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, + { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, + { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, + { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, + { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; + ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { + ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + } + } + + /* Control buttons*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + + /* Add/Set toggle (timer only)*/ + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode ~&254501108490678590&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&7083116119249&~: 8 - ~&214622605608&~: "#EEEEEE" + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; + } + } + } + + /* Reset*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&"6968812144639225076&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() + } + } + + /* Start / Stop*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ } ~&6503165774&~ { ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" ~&6503823200&~.~&254543497768871654&~: 20 ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); + } + } + } + } + + /* Alarm mode*/ + ~&14125623155555875541&~ { + ~&5972374&~: _alarmCol + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmMode + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 80 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _radioIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _radioIcon.~&214640173127&~ + ~&233721384511543&~.~&214640173127&~: _trashIcon.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&490371291080887915&~: 12 + ~&16491662607465103678&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 28 + ~&6503823200&~.~&7083316716977&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&6502673216&~.~&6502529386&~ : ~&6502673216&~.~&7081724354802&~ + ~&214622605608&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _trashIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&6503165774&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarms.~&7082886407723&~ === 0 + ~&6504315758&~: "No alarms set" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&214622605608&~: "#888888" + ~&8400129142283184211&~: 20 + ~&1353514028756047605&~: 20 + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Add alarms" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } ~&254494525842443467&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; - ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { - ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; - } ~&6503784146&~ { - ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; - } - ~&7082020628281&~.timerManager.refresh(); + ~&6504254477&~.~&2766288418351025740&~.~&214622501183&~(); + ~&6504254477&~.~&2766288418351025740&~.~&6504147419&~(~&"3271012201642534810&~); } } } } } - - /* Control buttons */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - - /* Add/Set toggle (timer only) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; - } - } - } - - /* Reset */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&"6968812144639225076&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() - } - } - - /* Start / Stop */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ - } - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" - ~&6503823200&~.~&254543497768871654&~: 20 - ~&6503823200&~.~&6503679370&~: ~&6504329801&~ - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); - } - } - } - } } } END TRAVERSE END AFFECT -; Notification bar when timer finishes - visible in all modes +; Alarm management inside system clock settings (inserted before the info message for more space) +AFFECT [[15410910318338348835]] + TRAVERSE [[7711468349764991]]#[[6504254477]] > [[8397788359424131273]] > [[14125623155555875541]]#[[8399784311425937276]] + LOCATE AFTER [[425121728314878811.214599571833]]#[[254526274719339159]] + INSERT { + ~&425121728314878811&~.~&214604609771&~ { + ~&6504315758&~: "Alarms" + ~&6504337259&~: ~&425121728314878811&~.~&214604609771&~.~&214594832564&~ + ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&233748750575870&~ + } + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 56 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _alarmIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 40 + ~&7082729686082&~: 40 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7424604169206955460&~ + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _alarmIcon.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&233721384511543&~.~&1765033595104803723&~: 1 + ~&490371291080887915&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 24 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _toggleAlarmIcon + ~&233721384511543&~.~&214640173127&~: _deleteAlarmIcon.~&6504027668&~ + ~&233721384511543&~.~&499747351624466981&~: 12 + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _deleteAlarmIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&5972374&~: _addAlarmPanel + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Add alarm" + ~&8399601734642709923&~: ~&"15094524446772001204&~ + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504337259&~: ~&254477762679831355&~.~&7081261925573&~.~&254547519794454865&~ + ~&6504315758&~: ~&6504222003&~("Add") + ~&254542236275632405&~: { + _addAlarmPanel.~&9195823055201242195&~ = !_addAlarmPanel.~&9195823055201242195&~; + } + } + ~&9195823055201242195&~: ~&214625660372&~ + ~&8399254548634699250&~: ~&14125623155555875541&~ { + ~&214646099849&~: _addAlarmPanel.~&214646099849&~ + ~&233744706647566&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 280 + + ~&14975672296977510442&~ { + ~&5972374&~: _alarmTimeSpinners + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: _nowBtn.~&6504027668&~ + ~&233721384511543&~.~&197100796&~: ~&7083038346995&~.~&197100796&~ + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&499747351624466981&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + ~&214628545114&~: 8 + ~&233736699967534&~: 0 + ~&8399894257374503713&~: function(~&180977&~) { _alarmTimeSpinners.~&214628545114&~ = ~&180977&~; } + ~&16346529800820831925&~: function(~&180982&~) { _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; } + } + + ~&6502786168&~ { + ~&5972374&~: _nowBtn + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 80 + ~&7082729686082&~: 48 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Now" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + _alarmTimeSpinners.~&214628545114&~ = ~&180973&~.getHours(); + _alarmTimeSpinners.~&233736699967534&~ = ~&180973&~.getMinutes(); + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [0, 15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + _alarmTimeSpinners.~&233736699967534&~ = ~&254539508423767444&~; + } + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&"180916&~ + ~&254539508423767444&~ + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180982&~ = _alarmTimeSpinners.~&233736699967534&~ + ~&254539508423767444&~; + ~&5972376&~ (~&180982&~ >= 60) { ~&180982&~ -= 60; } + _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; + } + } + } + } + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Save alarm" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addAlarm(_alarmTimeSpinners.~&214628545114&~, _alarmTimeSpinners.~&233736699967534&~); + _addAlarmPanel.~&9195823055201242195&~ = ~&214625660372&~; + } + } + } + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Flash light" + ~&478136262235079021&~: "Blink the reading light when the timer ends or an alarm triggers" + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504315758&~: ~&7082020628281&~.timerManager.blinkLightOnNotification ? ~&"5971526&~ : ~&"197060196&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.blinkLightOnNotification = !~&7082020628281&~.timerManager.blinkLightOnNotification + } + } + } + END TRAVERSE +END AFFECT + +; Notification bar for timer finish and alarm triggers AFFECT [[2328484894988065446]] IMPORT [[233700934949963.233693781272506]] [[180922.180921]] + IMPORT [[6504469795.233736922911970.214633057601.214626274418]] [[180922.180921]] TRAVERSE [[8397788359424131273]]#[[6504254477]] > [[8397993708429497603]]#[[7713531976371484]] LOCATE AFTER ALL @@ -308,16 +771,51 @@ AFFECT [[2328484894988065446]] ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ ~&233748328658231&~: ~&7082020628281&~.timerManager.~&16765420033347753489&~ + + ~&13733777459642361598&~: { + ~&5972376&~ (~&233748328658231&~ && ~&7082020628281&~.timerManager.blinkLightOnNotification) { + _blinkTimer.~&6504295855&~(); + _blinkTimer.~&214618014052&~ = 0; + _blinkTimer.~&214641748151&~(); + } + } + + ~&214604601930&~ { + ~&5972374&~: _blinkTimer + ~&7713147298280334&~: 1000 /* 1 sec*/ + ~&7083121289162&~: ~&6504329801&~ + property ~&197088788&~ ~&214618014052&~: 0 + property ~&6504243117&~ _savedValue: 0 + ~&495358363329399331&~: { + ~&197102514&~ l = ~&7082020628281&~.timerManager._blinkLight; + ~&5972376&~ (!l) { ~&6504295855&~(); ~&7083121450889&~; } + ~&5972376&~ (~&214618014052&~ >= 6) { + ~&6504295855&~(); + l.~&214644635174&~ = _savedValue; + ~&214618014052&~ = 0; + ~&7083121450889&~; + } + ~&5972376&~ (~&214618014052&~ === 0) { + _savedValue = l.~&214644635174&~; + } + l.~&214644635174&~ = ~&214618014052&~ % 2 === 0 ? 100 : 0; + ~&214618014052&~++; + } + } ~&6504337259&~: ~&254477762679831355&~.~&11119534664549952261&~.~&233740920352621&~ ~&425121728314878811&~.~&11119534664549952261&~.~&233695222288046&~ { - ~&6504315758&~: "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" + ? "Alarm at " + ~&7082020628281&~.timerManager.alarmNotificationText + : "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ ~&7081629735527&~.~&8399743405844438450&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ } + /* Timer buttons - hidden during alarm*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: ~&"233701679664206&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.doReset(); @@ -325,9 +823,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+1min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 60000; @@ -337,9 +838,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+5min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 300000; @@ -349,15 +853,32 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } + /* Universal Close / Dismiss*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { - ~&6504315758&~: ~&"214584551711&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" ? ~&"233683755411397&~ : ~&"214584551711&~ ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (~&7082020628281&~.timerManager.alarmNotificationText !== "") { + ~&7082020628281&~.timerManager.dismissAlarmNotification(); + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + } } } } } END TRAVERSE END AFFECT + +; Capture Light reference from the QuickSettingsSlider so we can blink it +AFFECT [[9830508555522680663]] + TRAVERSE [[425121728314878811.7081916140908]]#[[6504254477]] + LOCATE AFTER ALL + INSERT { + ~&254480451320573660&~.~&495334332051582499&~: ~&7082020628281&~.timerManager._blinkLight = ~&6504254477&~.~&214633057601&~; + } + END TRAVERSE +END AFFECT diff --git a/3.27.1.0/quickSettingsTimer.qmd b/3.27.1.0/quickSettingsTimer.qmd index e4f012e..1be9d65 100644 --- a/3.27.1.0/quickSettingsTimer.qmd +++ b/3.27.1.0/quickSettingsTimer.qmd @@ -1,5 +1,5 @@ -; Quick Settings Timer/Chrono -; Adds a countdown timer and stopwatch to the quick settings panel +; Quick Settings Timer/Chrono/Alarm +; Adds a countdown timer, stopwatch, and alarm system to the quick settings panel ; Timer state lives in Values.timerManager so it persists across menu opens/closes AFFECT [[1658694193319203921]] @@ -18,6 +18,15 @@ AFFECT [[1658694193319203921]] property ~&6503679477&~ ~&16765420033347753489&~: ~&214625660372&~ property ~&197088788&~ presetMs: 60000 property ~&6503679477&~ addMode: ~&6504329801&~ + property ~&6503679477&~ blinkLightOnNotification: ~&214625660372&~ + property ~&197102514&~ _blinkLight: ~&6504117156&~ + + /* Alarm state*/ + property ~&6503679477&~ alarmMode: ~&214625660372&~ + property ~&197102514&~ alarms: [] + property ~&197088788&~ nextAlarmId: 1 + property ~&7083178290016&~ alarmNotificationText: "" + property ~&197088788&~ lastNotifiedMinute: -1 /* absolute epoch-minute of the last fired alarm*/ function fmt(~&5972521&~) { ~&197102514&~ ~&180970&~ = ~&6502909715&~.~&197079679&~(~&5972521&~); @@ -26,7 +35,6 @@ AFFECT [[1658694193319203921]] ~&197102514&~ ~&180988&~ = ~&6502909715&~.~&214626058827&~((~&180970&~ % 60000) / 1000); ~&197102514&~ mm = ~&180982&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); ~&197102514&~ ss = ~&180988&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); - ~&5972376&~ (~&180977&~ > 0) { ~&7083121450889&~ ~&180977&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + mm + ~&"180931&~ + ss; } @@ -34,36 +42,122 @@ AFFECT [[1658694193319203921]] } function refresh() { - ~&5972376&~ (timerMode) { - ~&478322454160073828&~ = fmt(remainMs > 0 ? remainMs : 0); + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.remainMs > 0 ? _timerManager.remainMs : 0); } ~&6503784146&~ { - ~&478322454160073828&~ = fmt(totalMs); + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.totalMs); } } function go() { - ~&5972376&~ (timerMode) { - ~&5972376&~ (remainMs <= 0) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + ~&5972376&~ (_timerManager.remainMs <= 0) ~&7083121450889&~; } - ~&16765420033347753489&~ = ~&214625660372&~; - isRunning = ~&6504329801&~; + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.isRunning = ~&6504329801&~; _tick.~&214641748151&~(); } function ~&6504295855&~() { - isRunning = ~&214625660372&~; + _timerManager.isRunning = ~&214625660372&~; _tick.~&6504295855&~(); } function doReset() { - ~&6504295855&~(); - ~&16765420033347753489&~ = ~&214625660372&~; - ~&5972376&~ (timerMode) { - remainMs = totalMs; + _timerManager.~&6504295855&~(); + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.remainMs = _timerManager.totalMs; } ~&6503784146&~ { - totalMs = 0; + _timerManager.totalMs = 0; + } + _timerManager.refresh(); + } + + /* Alarm management*/ + function addAlarm(~&180977&~, ~&180982&~) { + ~&197102514&~ ~&180970&~ = { ~&5972374&~: _timerManager.nextAlarmId, hour: ~&180977&~, minute: ~&180982&~, ~&233726547792244&~: ~&6504329801&~ }; + _timerManager.alarms = _timerManager.alarms.~&7082546043425&~([~&180970&~]); + _timerManager.nextAlarmId++; + _timerManager.saveAlarms(); + } + + function removeAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&7082656280847&~(function(~&180970&~) { + ~&7083121450889&~ ~&180970&~.~&5972374&~ !== ~&5972374&~; + }); + _timerManager.saveAlarms(); + } + + function toggleAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&197092711&~(function(~&180970&~) { + ~&5972376&~ (~&180970&~.~&5972374&~ !== ~&5972374&~) ~&7083121450889&~ ~&180970&~; + ~&7083121450889&~ { ~&5972374&~: ~&180970&~.~&5972374&~, hour: ~&180970&~.hour, minute: ~&180970&~.minute, ~&233726547792244&~: !~&180970&~.~&233726547792244&~ }; + }); + _timerManager.saveAlarms(); + } + + function dismissAlarmNotification() { + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.alarmNotificationText = ""; + } + + function saveAlarms() { + ~&197102514&~ payload = { + alarms: _timerManager.alarms, + nextAlarmId: _timerManager.nextAlarmId, + blinkLightOnNotification: _timerManager.blinkLightOnNotification + }; + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("PUT", "file:///home/root/alarms.json"); + xhr.~&6504279475&~(~&6502785411&~.~&254548178208422824&~(payload)); + } + + function loadAlarms() { + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("GET", "file:///home/root/alarms.json"); + xhr.onreadystatechange = function() { + ~&5972376&~ (xhr.readyState === XMLHttpRequest.DONE) { + try { + ~&197102514&~ ~&6503736259&~ = ~&6502785411&~.parse(xhr.responseText); + _timerManager.alarms = ~&6503736259&~.alarms || []; + _timerManager.nextAlarmId = ~&6503736259&~.nextAlarmId || 1; + _timerManager.blinkLightOnNotification = ~&6503736259&~.blinkLightOnNotification || ~&214625660372&~; + } catch (~&180974&~) { + _timerManager.alarms = []; + _timerManager.nextAlarmId = 1; + } + } + }; + xhr.~&6504279475&~(); + } + + ~&214604601930&~ { + ~&5972374&~: _alarmChecker + ~&7713147298280334&~: 5000 + ~&7083121289162&~: ~&6504329801&~ + ~&233743626668842&~: ~&6504329801&~ + ~&495358363329399331&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + /* Use an absolute epoch-minute (not hour*60+minute) so that a recurring*/ + /* alarm can fire again on the next day instead of being permanently*/ + /* suppressed once it has matched lastNotifiedMinute.*/ + ~&197102514&~ nowMinute = ~&6502909715&~.~&214626058827&~(~&180973&~.getTime() / 60000); + ~&5972376&~ (nowMinute === _timerManager.lastNotifiedMinute) ~&7083121450889&~; + + ~&197102514&~ ~&180977&~ = ~&180973&~.getHours(); + ~&197102514&~ ~&180982&~ = ~&180973&~.getMinutes(); + ~&197085552&~ (~&197102514&~ ~&180978&~ = 0; ~&180978&~ < _timerManager.alarms.~&7082886407723&~; ~&180978&~++) { + ~&197102514&~ ~&180970&~ = _timerManager.alarms[~&180978&~]; + ~&5972376&~ (~&180970&~.~&233726547792244&~ && ~&180970&~.hour === ~&180977&~ && ~&180970&~.minute === ~&180982&~) { + _timerManager.alarmNotificationText = ~&180970&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&180970&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); + _timerManager.~&16765420033347753489&~ = ~&6504329801&~; + _timerManager.lastNotifiedMinute = nowMinute; + ~&214621519406&~; + } + } } - refresh(); } ~&214604601930&~ { @@ -71,6 +165,7 @@ AFFECT [[1658694193319203921]] ~&7713147298280334&~: 100 ~&7083121289162&~: ~&6504329801&~ ~&495358363329399331&~: { + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; ~&5972376&~ (_timerManager.timerMode) { _timerManager.remainMs -= 100; ~&5972376&~ (_timerManager.remainMs <= 0) { @@ -84,6 +179,10 @@ AFFECT [[1658694193319203921]] _timerManager.refresh(); } } + + ~&254480451320573660&~.~&495334332051582499&~: { + _timerManager.loadAlarms(); + } } } END TRAVERSE @@ -93,212 +192,576 @@ AFFECT [[12542166428983872557]] TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]] LOCATE AFTER [[254501558939456351]]#[[8399137618543699982]] INSERT { - ~&425121728314878811&~.~&15740235808997988493&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - } - - ~&14125623155555875541&~ { - ~&5972374&~: _timerUI + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _timerUI.~&2122835675838176157&~ ~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - /* Mode selector tabs */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: 0 + ~&14125623155555875541&~ { + ~&5972374&~: _timerUI + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: ~&"214604601930&~, isTimer: ~&6504329801&~ }, - { ~&197101097&~: "Chrono", isTimer: ~&214625660372&~ } - ] - ~&7712922269353028&~: ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 68 + ~&425121728314878811&~.~&15740235808997988493&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + } - readonly property ~&6503679477&~ ~&7082453764421&~: ~&7082020628281&~.timerManager.timerMode === ~&254539508423767444&~.isTimer + /* Mode selector tabs*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: 0 - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ - ~&6503823200&~.~&254543497768871654&~: 24 - ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.isTimer; - ~&5972376&~ (!~&254539508423767444&~.isTimer) { - ~&7082020628281&~.timerManager.totalMs = 0; - } - ~&7082020628281&~.timerManager.refresh(); + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: ~&"214604601930&~, ~&6504074414&~: ~&"214642551402&~ }, + { ~&197101097&~: "Chrono", ~&6504074414&~: "chrono" }, + { ~&197101097&~: "Alarm", ~&6504074414&~: "alarm" } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 68 + + readonly property ~&6503679477&~ ~&7082453764421&~: ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~ ? !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode + : ~&254539508423767444&~.~&6504074414&~ === "chrono" ? !~&7082020628281&~.timerManager.alarmMode && !~&7082020628281&~.timerManager.timerMode + : ~&7082020628281&~.timerManager.alarmMode + + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 24 + ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "alarm") { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.alarmMode = ~&6504329801&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.alarmMode = ~&214625660372&~; + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~; + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "chrono") { + ~&7082020628281&~.timerManager.totalMs = 0; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + ~&254501108490678590&~ { + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&7082729686082&~: 3 + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } - } - ~&254501108490678590&~ { - ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ - ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ - ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ - ~&7082729686082&~: 3 - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } } } - } - /* Time display (fixed width to avoid resizing) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~ - ~&7081629735527&~.~&7797818826744279624&~: 300 - ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ - ~&6503165774&~ { - ~&5972374&~: _display - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ - ~&6503823200&~.~&254543497768871654&~: 56 - ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight - ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ - ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + /* Time display*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + ~&6503165774&~ { + ~&5972374&~: _display + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ + ~&6503823200&~.~&254543497768871654&~: 56 + ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } } - } - /* Preset buttons (timer mode only) */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode + /* Preset buttons (timer mode only)*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, - { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, - { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, - { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, - { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } - ] - ~&7712922269353028&~: ~&6502786168&~ { + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, + { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, + { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, + { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, + { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; + ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { + ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + } + } + + /* Control buttons*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + + /* Add/Set toggle (timer only)*/ + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode ~&254501108490678590&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&7083116119249&~: 8 - ~&214622605608&~: "#EEEEEE" + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; + } + } + } + + /* Reset*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&"6968812144639225076&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() + } + } + + /* Start / Stop*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ } ~&6503165774&~ { ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" ~&6503823200&~.~&254543497768871654&~: 20 ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); + } + } + } + } + + /* Alarm mode*/ + ~&14125623155555875541&~ { + ~&5972374&~: _alarmCol + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmMode + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 80 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _radioIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _radioIcon.~&214640173127&~ + ~&233721384511543&~.~&214640173127&~: _trashIcon.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&490371291080887915&~: 12 + ~&16491662607465103678&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 28 + ~&6503823200&~.~&7083316716977&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&6502673216&~.~&6502529386&~ : ~&6502673216&~.~&7081724354802&~ + ~&214622605608&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _trashIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&6503165774&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarms.~&7082886407723&~ === 0 + ~&6504315758&~: "No alarms set" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&214622605608&~: "#888888" + ~&8400129142283184211&~: 20 + ~&1353514028756047605&~: 20 + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Add alarms" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } ~&254494525842443467&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; - ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { - ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; - } ~&6503784146&~ { - ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; - } - ~&7082020628281&~.timerManager.refresh(); + ~&6504254477&~.~&2766288418351025740&~.~&214622501183&~(); + ~&6504254477&~.~&2766288418351025740&~.~&6504147419&~(~&"3271012201642534810&~); } } } } } - - /* Control buttons */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - - /* Add/Set toggle (timer only) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; - } - } - } - - /* Reset */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&"6968812144639225076&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() - } - } - - /* Start / Stop */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ - } - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" - ~&6503823200&~.~&254543497768871654&~: 20 - ~&6503823200&~.~&6503679370&~: ~&6504329801&~ - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); - } - } - } - } } } END TRAVERSE END AFFECT -; Notification bar when timer finishes - visible in all modes +; Alarm management inside system clock settings (inserted before the info message for more space) +AFFECT [[15410910318338348835]] + TRAVERSE [[7711468349764991]]#[[6504254477]] > [[8397788359424131273]] > [[14125623155555875541]]#[[8399784311425937276]] + LOCATE AFTER [[425121728314878811.214599571833]]#[[254526274719339159]] + INSERT { + ~&425121728314878811&~.~&214604609771&~ { + ~&6504315758&~: "Alarms" + ~&6504337259&~: ~&425121728314878811&~.~&214604609771&~.~&214594832564&~ + ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&233748750575870&~ + } + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 56 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _alarmIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 40 + ~&7082729686082&~: 40 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7424604169206955460&~ + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _alarmIcon.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&233721384511543&~.~&1765033595104803723&~: 1 + ~&490371291080887915&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 24 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _toggleAlarmIcon + ~&233721384511543&~.~&214640173127&~: _deleteAlarmIcon.~&6504027668&~ + ~&233721384511543&~.~&499747351624466981&~: 12 + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _deleteAlarmIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&5972374&~: _addAlarmPanel + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Add alarm" + ~&8399601734642709923&~: ~&"15094524446772001204&~ + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504337259&~: ~&254477762679831355&~.~&7081261925573&~.~&254547519794454865&~ + ~&6504315758&~: ~&6504222003&~("Add") + ~&254542236275632405&~: { + _addAlarmPanel.~&9195823055201242195&~ = !_addAlarmPanel.~&9195823055201242195&~; + } + } + ~&9195823055201242195&~: ~&214625660372&~ + ~&8399254548634699250&~: ~&14125623155555875541&~ { + ~&214646099849&~: _addAlarmPanel.~&214646099849&~ + ~&233744706647566&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 280 + + ~&14975672296977510442&~ { + ~&5972374&~: _alarmTimeSpinners + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: _nowBtn.~&6504027668&~ + ~&233721384511543&~.~&197100796&~: ~&7083038346995&~.~&197100796&~ + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&499747351624466981&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + ~&214628545114&~: 8 + ~&233736699967534&~: 0 + ~&8399894257374503713&~: function(~&180977&~) { _alarmTimeSpinners.~&214628545114&~ = ~&180977&~; } + ~&16346529800820831925&~: function(~&180982&~) { _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; } + } + + ~&6502786168&~ { + ~&5972374&~: _nowBtn + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 80 + ~&7082729686082&~: 48 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Now" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + _alarmTimeSpinners.~&214628545114&~ = ~&180973&~.getHours(); + _alarmTimeSpinners.~&233736699967534&~ = ~&180973&~.getMinutes(); + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [0, 15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + _alarmTimeSpinners.~&233736699967534&~ = ~&254539508423767444&~; + } + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&"180916&~ + ~&254539508423767444&~ + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180982&~ = _alarmTimeSpinners.~&233736699967534&~ + ~&254539508423767444&~; + ~&5972376&~ (~&180982&~ >= 60) { ~&180982&~ -= 60; } + _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; + } + } + } + } + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Save alarm" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addAlarm(_alarmTimeSpinners.~&214628545114&~, _alarmTimeSpinners.~&233736699967534&~); + _addAlarmPanel.~&9195823055201242195&~ = ~&214625660372&~; + } + } + } + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Flash light" + ~&478136262235079021&~: "Blink the reading light when the timer ends or an alarm triggers" + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504315758&~: ~&7082020628281&~.timerManager.blinkLightOnNotification ? ~&"5971526&~ : ~&"197060196&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.blinkLightOnNotification = !~&7082020628281&~.timerManager.blinkLightOnNotification + } + } + } + END TRAVERSE +END AFFECT + +; Notification bar for timer finish and alarm triggers AFFECT [[2328484894988065446]] IMPORT [[233700934949963.233693781272506]] [[180922.180921]] + IMPORT [[6504469795.233736922911970.214633057601.214626274418]] [[180922.180921]] TRAVERSE [[8397788359424131273]]#[[6504254477]] > [[8397993708429497603]]#[[7713531976371484]] LOCATE AFTER ALL @@ -308,16 +771,51 @@ AFFECT [[2328484894988065446]] ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ ~&233748328658231&~: ~&7082020628281&~.timerManager.~&16765420033347753489&~ + + ~&13733777459642361598&~: { + ~&5972376&~ (~&233748328658231&~ && ~&7082020628281&~.timerManager.blinkLightOnNotification) { + _blinkTimer.~&6504295855&~(); + _blinkTimer.~&214618014052&~ = 0; + _blinkTimer.~&214641748151&~(); + } + } + + ~&214604601930&~ { + ~&5972374&~: _blinkTimer + ~&7713147298280334&~: 1000 /* 1 sec*/ + ~&7083121289162&~: ~&6504329801&~ + property ~&197088788&~ ~&214618014052&~: 0 + property ~&6504243117&~ _savedValue: 0 + ~&495358363329399331&~: { + ~&197102514&~ l = ~&7082020628281&~.timerManager._blinkLight; + ~&5972376&~ (!l) { ~&6504295855&~(); ~&7083121450889&~; } + ~&5972376&~ (~&214618014052&~ >= 6) { + ~&6504295855&~(); + l.~&214644635174&~ = _savedValue; + ~&214618014052&~ = 0; + ~&7083121450889&~; + } + ~&5972376&~ (~&214618014052&~ === 0) { + _savedValue = l.~&214644635174&~; + } + l.~&214644635174&~ = ~&214618014052&~ % 2 === 0 ? 100 : 0; + ~&214618014052&~++; + } + } ~&6504337259&~: ~&254477762679831355&~.~&11119534664549952261&~.~&233740920352621&~ ~&425121728314878811&~.~&11119534664549952261&~.~&233695222288046&~ { - ~&6504315758&~: "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" + ? "Alarm at " + ~&7082020628281&~.timerManager.alarmNotificationText + : "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ ~&7081629735527&~.~&8399743405844438450&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ } + /* Timer buttons - hidden during alarm*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: ~&"233701679664206&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.doReset(); @@ -325,9 +823,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+1min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 60000; @@ -337,9 +838,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+5min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 300000; @@ -349,15 +853,32 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } + /* Universal Close / Dismiss*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { - ~&6504315758&~: ~&"214584551711&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" ? ~&"233683755411397&~ : ~&"214584551711&~ ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (~&7082020628281&~.timerManager.alarmNotificationText !== "") { + ~&7082020628281&~.timerManager.dismissAlarmNotification(); + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + } } } } } END TRAVERSE END AFFECT + +; Capture Light reference from the QuickSettingsSlider so we can blink it +AFFECT [[9830508555522680663]] + TRAVERSE [[425121728314878811.7081916140908]]#[[6504254477]] + LOCATE AFTER ALL + INSERT { + ~&254480451320573660&~.~&495334332051582499&~: ~&7082020628281&~.timerManager._blinkLight = ~&6504254477&~.~&214633057601&~; + } + END TRAVERSE +END AFFECT diff --git a/3.27.3.0/quickSettingsTimer.qmd b/3.27.3.0/quickSettingsTimer.qmd index e4f012e..1be9d65 100644 --- a/3.27.3.0/quickSettingsTimer.qmd +++ b/3.27.3.0/quickSettingsTimer.qmd @@ -1,5 +1,5 @@ -; Quick Settings Timer/Chrono -; Adds a countdown timer and stopwatch to the quick settings panel +; Quick Settings Timer/Chrono/Alarm +; Adds a countdown timer, stopwatch, and alarm system to the quick settings panel ; Timer state lives in Values.timerManager so it persists across menu opens/closes AFFECT [[1658694193319203921]] @@ -18,6 +18,15 @@ AFFECT [[1658694193319203921]] property ~&6503679477&~ ~&16765420033347753489&~: ~&214625660372&~ property ~&197088788&~ presetMs: 60000 property ~&6503679477&~ addMode: ~&6504329801&~ + property ~&6503679477&~ blinkLightOnNotification: ~&214625660372&~ + property ~&197102514&~ _blinkLight: ~&6504117156&~ + + /* Alarm state*/ + property ~&6503679477&~ alarmMode: ~&214625660372&~ + property ~&197102514&~ alarms: [] + property ~&197088788&~ nextAlarmId: 1 + property ~&7083178290016&~ alarmNotificationText: "" + property ~&197088788&~ lastNotifiedMinute: -1 /* absolute epoch-minute of the last fired alarm*/ function fmt(~&5972521&~) { ~&197102514&~ ~&180970&~ = ~&6502909715&~.~&197079679&~(~&5972521&~); @@ -26,7 +35,6 @@ AFFECT [[1658694193319203921]] ~&197102514&~ ~&180988&~ = ~&6502909715&~.~&214626058827&~((~&180970&~ % 60000) / 1000); ~&197102514&~ mm = ~&180982&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); ~&197102514&~ ss = ~&180988&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); - ~&5972376&~ (~&180977&~ > 0) { ~&7083121450889&~ ~&180977&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + mm + ~&"180931&~ + ss; } @@ -34,36 +42,122 @@ AFFECT [[1658694193319203921]] } function refresh() { - ~&5972376&~ (timerMode) { - ~&478322454160073828&~ = fmt(remainMs > 0 ? remainMs : 0); + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.remainMs > 0 ? _timerManager.remainMs : 0); } ~&6503784146&~ { - ~&478322454160073828&~ = fmt(totalMs); + _timerManager.~&478322454160073828&~ = _timerManager.fmt(_timerManager.totalMs); } } function go() { - ~&5972376&~ (timerMode) { - ~&5972376&~ (remainMs <= 0) ~&7083121450889&~; + ~&5972376&~ (_timerManager.timerMode) { + ~&5972376&~ (_timerManager.remainMs <= 0) ~&7083121450889&~; } - ~&16765420033347753489&~ = ~&214625660372&~; - isRunning = ~&6504329801&~; + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.isRunning = ~&6504329801&~; _tick.~&214641748151&~(); } function ~&6504295855&~() { - isRunning = ~&214625660372&~; + _timerManager.isRunning = ~&214625660372&~; _tick.~&6504295855&~(); } function doReset() { - ~&6504295855&~(); - ~&16765420033347753489&~ = ~&214625660372&~; - ~&5972376&~ (timerMode) { - remainMs = totalMs; + _timerManager.~&6504295855&~(); + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (_timerManager.timerMode) { + _timerManager.remainMs = _timerManager.totalMs; } ~&6503784146&~ { - totalMs = 0; + _timerManager.totalMs = 0; + } + _timerManager.refresh(); + } + + /* Alarm management*/ + function addAlarm(~&180977&~, ~&180982&~) { + ~&197102514&~ ~&180970&~ = { ~&5972374&~: _timerManager.nextAlarmId, hour: ~&180977&~, minute: ~&180982&~, ~&233726547792244&~: ~&6504329801&~ }; + _timerManager.alarms = _timerManager.alarms.~&7082546043425&~([~&180970&~]); + _timerManager.nextAlarmId++; + _timerManager.saveAlarms(); + } + + function removeAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&7082656280847&~(function(~&180970&~) { + ~&7083121450889&~ ~&180970&~.~&5972374&~ !== ~&5972374&~; + }); + _timerManager.saveAlarms(); + } + + function toggleAlarm(~&5972374&~) { + _timerManager.alarms = _timerManager.alarms.~&197092711&~(function(~&180970&~) { + ~&5972376&~ (~&180970&~.~&5972374&~ !== ~&5972374&~) ~&7083121450889&~ ~&180970&~; + ~&7083121450889&~ { ~&5972374&~: ~&180970&~.~&5972374&~, hour: ~&180970&~.hour, minute: ~&180970&~.minute, ~&233726547792244&~: !~&180970&~.~&233726547792244&~ }; + }); + _timerManager.saveAlarms(); + } + + function dismissAlarmNotification() { + _timerManager.~&16765420033347753489&~ = ~&214625660372&~; + _timerManager.alarmNotificationText = ""; + } + + function saveAlarms() { + ~&197102514&~ payload = { + alarms: _timerManager.alarms, + nextAlarmId: _timerManager.nextAlarmId, + blinkLightOnNotification: _timerManager.blinkLightOnNotification + }; + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("PUT", "file:///home/root/alarms.json"); + xhr.~&6504279475&~(~&6502785411&~.~&254548178208422824&~(payload)); + } + + function loadAlarms() { + ~&197102514&~ xhr = new XMLHttpRequest(); + xhr.~&6504147419&~("GET", "file:///home/root/alarms.json"); + xhr.onreadystatechange = function() { + ~&5972376&~ (xhr.readyState === XMLHttpRequest.DONE) { + try { + ~&197102514&~ ~&6503736259&~ = ~&6502785411&~.parse(xhr.responseText); + _timerManager.alarms = ~&6503736259&~.alarms || []; + _timerManager.nextAlarmId = ~&6503736259&~.nextAlarmId || 1; + _timerManager.blinkLightOnNotification = ~&6503736259&~.blinkLightOnNotification || ~&214625660372&~; + } catch (~&180974&~) { + _timerManager.alarms = []; + _timerManager.nextAlarmId = 1; + } + } + }; + xhr.~&6504279475&~(); + } + + ~&214604601930&~ { + ~&5972374&~: _alarmChecker + ~&7713147298280334&~: 5000 + ~&7083121289162&~: ~&6504329801&~ + ~&233743626668842&~: ~&6504329801&~ + ~&495358363329399331&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + /* Use an absolute epoch-minute (not hour*60+minute) so that a recurring*/ + /* alarm can fire again on the next day instead of being permanently*/ + /* suppressed once it has matched lastNotifiedMinute.*/ + ~&197102514&~ nowMinute = ~&6502909715&~.~&214626058827&~(~&180973&~.getTime() / 60000); + ~&5972376&~ (nowMinute === _timerManager.lastNotifiedMinute) ~&7083121450889&~; + + ~&197102514&~ ~&180977&~ = ~&180973&~.getHours(); + ~&197102514&~ ~&180982&~ = ~&180973&~.getMinutes(); + ~&197085552&~ (~&197102514&~ ~&180978&~ = 0; ~&180978&~ < _timerManager.alarms.~&7082886407723&~; ~&180978&~++) { + ~&197102514&~ ~&180970&~ = _timerManager.alarms[~&180978&~]; + ~&5972376&~ (~&180970&~.~&233726547792244&~ && ~&180970&~.hour === ~&180977&~ && ~&180970&~.minute === ~&180982&~) { + _timerManager.alarmNotificationText = ~&180970&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&180970&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~); + _timerManager.~&16765420033347753489&~ = ~&6504329801&~; + _timerManager.lastNotifiedMinute = nowMinute; + ~&214621519406&~; + } + } } - refresh(); } ~&214604601930&~ { @@ -71,6 +165,7 @@ AFFECT [[1658694193319203921]] ~&7713147298280334&~: 100 ~&7083121289162&~: ~&6504329801&~ ~&495358363329399331&~: { + ~&5972376&~ (_timerManager.alarmMode) ~&7083121450889&~; ~&5972376&~ (_timerManager.timerMode) { _timerManager.remainMs -= 100; ~&5972376&~ (_timerManager.remainMs <= 0) { @@ -84,6 +179,10 @@ AFFECT [[1658694193319203921]] _timerManager.refresh(); } } + + ~&254480451320573660&~.~&495334332051582499&~: { + _timerManager.loadAlarms(); + } } } END TRAVERSE @@ -93,212 +192,576 @@ AFFECT [[12542166428983872557]] TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]] LOCATE AFTER [[254501558939456351]]#[[8399137618543699982]] INSERT { - ~&425121728314878811&~.~&15740235808997988493&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - } - - ~&14125623155555875541&~ { - ~&5972374&~: _timerUI + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _timerUI.~&2122835675838176157&~ ~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&214641496386&~ - ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - /* Mode selector tabs */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: 0 + ~&14125623155555875541&~ { + ~&5972374&~: _timerUI + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: ~&"214604601930&~, isTimer: ~&6504329801&~ }, - { ~&197101097&~: "Chrono", isTimer: ~&214625660372&~ } - ] - ~&7712922269353028&~: ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 68 + ~&425121728314878811&~.~&15740235808997988493&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + } - readonly property ~&6503679477&~ ~&7082453764421&~: ~&7082020628281&~.timerManager.timerMode === ~&254539508423767444&~.isTimer + /* Mode selector tabs*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: 0 - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ - ~&6503823200&~.~&254543497768871654&~: 24 - ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.isTimer; - ~&5972376&~ (!~&254539508423767444&~.isTimer) { - ~&7082020628281&~.timerManager.totalMs = 0; - } - ~&7082020628281&~.timerManager.refresh(); + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: ~&"214604601930&~, ~&6504074414&~: ~&"214642551402&~ }, + { ~&197101097&~: "Chrono", ~&6504074414&~: "chrono" }, + { ~&197101097&~: "Alarm", ~&6504074414&~: "alarm" } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 68 + + readonly property ~&6503679477&~ ~&7082453764421&~: ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~ ? !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode + : ~&254539508423767444&~.~&6504074414&~ === "chrono" ? !~&7082020628281&~.timerManager.alarmMode && !~&7082020628281&~.timerManager.timerMode + : ~&7082020628281&~.timerManager.alarmMode + + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 24 + ~&6503823200&~.~&6503679370&~: ~&7082453764421&~ + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "alarm") { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.alarmMode = ~&6504329801&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.alarmMode = ~&214625660372&~; + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.timerMode = ~&254539508423767444&~.~&6504074414&~ === ~&"214642551402&~; + ~&5972376&~ (~&254539508423767444&~.~&6504074414&~ === "chrono") { + ~&7082020628281&~.timerManager.totalMs = 0; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + ~&254501108490678590&~ { + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&7082729686082&~: 3 + ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } - } - ~&254501108490678590&~ { - ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ - ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ - ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ - ~&7082729686082&~: 3 - ~&214622605608&~: ~&7082453764421&~ ? ~&7082020628281&~.~&8399340017235344933&~ : ~&"503220030291830651&~ } } } - } - /* Time display (fixed width to avoid resizing) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~ - ~&7081629735527&~.~&7797818826744279624&~: 300 - ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ - ~&6503165774&~ { - ~&5972374&~: _display - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ - ~&6503823200&~.~&254543497768871654&~: 56 - ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight - ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ - ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + /* Time display*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: _display.~&2122835675838176157&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + ~&6503165774&~ { + ~&5972374&~: _display + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.~&478322454160073828&~ + ~&6503823200&~.~&254543497768871654&~: 56 + ~&6503823200&~.~&7083316716977&~: ~&6502673216&~.ExtraLight + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } } - } - /* Preset buttons (timer mode only) */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode + /* Preset buttons (timer mode only)*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode && ~&7082020628281&~.timerManager.timerMode - ~&7712155293725601&~ { - ~&214634455770&~: [ - { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, - { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, - { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, - { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, - { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } - ] - ~&7712922269353028&~: ~&6502786168&~ { + ~&7712155293725601&~ { + ~&214634455770&~: [ + { ~&197101097&~: "1 m", ~&197102508&~: 60000 }, + { ~&197101097&~: "5 m", ~&197102508&~: 300000 }, + { ~&197101097&~: "10 m", ~&197102508&~: 600000 }, + { ~&197101097&~: "30 m", ~&197102508&~: 1800000 }, + { ~&197101097&~: "1 h", ~&197102508&~: 3600000 } + ] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.~&6504295855&~(); + ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; + ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { + ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; + ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; + } + ~&7082020628281&~.timerManager.refresh(); + } + } + } + } + } + + /* Control buttons*/ + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + ~&233748328658231&~: !~&7082020628281&~.timerManager.alarmMode + + /* Add/Set toggle (timer only)*/ + ~&6502786168&~ { ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 50 + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode ~&254501108490678590&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&7083116119249&~: 8 - ~&214622605608&~: "#EEEEEE" + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; + } + } + } + + /* Reset*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&7082507052999&~.~&214622605608&~: "#888888" + ~&7082507052999&~.~&214646099849&~: 1 + ~&214622605608&~: ~&"503220030291830651&~ + } + ~&425121728314878811&~.~&6502767986&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ + ~&7083172477658&~: ~&"6968812144639225076&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() + } + } + + /* Start / Stop*/ + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 70 + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ } ~&6503165774&~ { ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&254539508423767444&~.~&197101097&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" ~&6503823200&~.~&254543497768871654&~: 20 ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); + } + } + } + } + + /* Alarm mode*/ + ~&14125623155555875541&~ { + ~&5972374&~: _alarmCol + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmMode + ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 80 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _radioIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _radioIcon.~&214640173127&~ + ~&233721384511543&~.~&214640173127&~: _trashIcon.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&490371291080887915&~: 12 + ~&16491662607465103678&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 28 + ~&6503823200&~.~&7083316716977&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&6502673216&~.~&6502529386&~ : ~&6502673216&~.~&7081724354802&~ + ~&214622605608&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&7082020628281&~.~&8399340017235344933&~ : "#888888" + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _trashIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&6503165774&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarms.~&7082886407723&~ === 0 + ~&6504315758&~: "No alarms set" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&214622605608&~: "#888888" + ~&8400129142283184211&~: 20 + ~&1353514028756047605&~: 20 + ~&15450610953915458578&~: ~&6503165774&~.~&14019785274593562237&~ + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Add alarms" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } ~&254494525842443467&~ { ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.~&6504295855&~(); - ~&7082020628281&~.timerManager.presetMs = ~&254539508423767444&~.~&197102508&~; - ~&5972376&~ (~&7082020628281&~.timerManager.addMode) { - ~&7082020628281&~.timerManager.totalMs += ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs += ~&254539508423767444&~.~&197102508&~; - } ~&6503784146&~ { - ~&7082020628281&~.timerManager.totalMs = ~&254539508423767444&~.~&197102508&~; - ~&7082020628281&~.timerManager.remainMs = ~&254539508423767444&~.~&197102508&~; - } - ~&7082020628281&~.timerManager.refresh(); + ~&6504254477&~.~&2766288418351025740&~.~&214622501183&~(); + ~&6504254477&~.~&2766288418351025740&~.~&6504147419&~(~&"3271012201642534810&~); } } } } } - - /* Control buttons */ - ~&254501558939456351&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&233744706647566&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233744706647566&~.~&214641496386&~ - - /* Add/Set toggle (timer only) */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&233748328658231&~: ~&7082020628281&~.timerManager.timerMode - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&7082020628281&~.timerManager.addMode ? ~&"15094524446772001204&~ : ~&"5724976033632521381&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.addMode = !~&7082020628281&~.timerManager.addMode; - } - } - } - - /* Reset */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&7082507052999&~.~&214622605608&~: "#888888" - ~&7082507052999&~.~&214646099849&~: 1 - ~&214622605608&~: ~&"503220030291830651&~ - } - ~&425121728314878811&~.~&6502767986&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&214641496386&~ - ~&7083172477658&~: ~&"6968812144639225076&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: ~&7082020628281&~.timerManager.doReset() - } - } - - /* Start / Stop */ - ~&6502786168&~ { - ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ - ~&7081629735527&~.~&17520348323745447649&~: 70 - ~&254501108490678590&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&7083116119249&~: 8 - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? "#EEEEEE" : ~&7082020628281&~.~&8399340017235344933&~ - } - ~&6503165774&~ { - ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ - ~&6504315758&~: ~&7082020628281&~.timerManager.isRunning ? "Stop" : "Start" - ~&6503823200&~.~&254543497768871654&~: 20 - ~&6503823200&~.~&6503679370&~: ~&6504329801&~ - ~&214622605608&~: ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.~&8399340017235344933&~ : ~&7082020628281&~.~&8399340017260114793&~ - } - ~&254494525842443467&~ { - ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ - ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.isRunning ? ~&7082020628281&~.timerManager.~&6504295855&~() : ~&7082020628281&~.timerManager.go(); - } - } - } - } } } END TRAVERSE END AFFECT -; Notification bar when timer finishes - visible in all modes +; Alarm management inside system clock settings (inserted before the info message for more space) +AFFECT [[15410910318338348835]] + TRAVERSE [[7711468349764991]]#[[6504254477]] > [[8397788359424131273]] > [[14125623155555875541]]#[[8399784311425937276]] + LOCATE AFTER [[425121728314878811.214599571833]]#[[254526274719339159]] + INSERT { + ~&425121728314878811&~.~&214604609771&~ { + ~&6504315758&~: "Alarms" + ~&6504337259&~: ~&425121728314878811&~.~&214604609771&~.~&214594832564&~ + ~&7081629735527&~.~&254549367831075482&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&233748750575870&~ + } + + ~&7712155293725601&~ { + ~&214634455770&~: ~&7082020628281&~.timerManager.alarms + + ~&7712922269353028&~: ~&14125623155555875541&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 56 + ~&233744706647566&~: 0 + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _alarmIcon + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 40 + ~&7082729686082&~: 40 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7424604169206955460&~ + } + + ~&6503165774&~ { + ~&233721384511543&~.~&6504027668&~: _alarmIcon.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&233721384511543&~.~&1765033595104803723&~: 1 + ~&490371291080887915&~: 12 + ~&6504315758&~: ~&254539508423767444&~.hour.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&"180931&~ + ~&254539508423767444&~.minute.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 24 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _toggleAlarmIcon + ~&233721384511543&~.~&214640173127&~: _deleteAlarmIcon.~&6504027668&~ + ~&233721384511543&~.~&499747351624466981&~: 12 + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&254539508423767444&~.~&233726547792244&~ ? ~&"8609871882813839963&~ : ~&"7424611027213444377&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.toggleAlarm(~&254539508423767444&~.~&5972374&~) + } + } + + ~&425121728314878811&~.~&6502767986&~ { + ~&5972374&~: _deleteAlarmIcon + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 48 + ~&7082729686082&~: 48 + ~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~ + ~&7083172477658&~: ~&"7312727925064657782&~ + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.removeAlarm(~&254539508423767444&~.~&5972374&~) + } + } + } + + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&5972374&~: _addAlarmPanel + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Add alarm" + ~&8399601734642709923&~: ~&"15094524446772001204&~ + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504337259&~: ~&254477762679831355&~.~&7081261925573&~.~&254547519794454865&~ + ~&6504315758&~: ~&6504222003&~("Add") + ~&254542236275632405&~: { + _addAlarmPanel.~&9195823055201242195&~ = !_addAlarmPanel.~&9195823055201242195&~; + } + } + ~&9195823055201242195&~: ~&214625660372&~ + ~&8399254548634699250&~: ~&14125623155555875541&~ { + ~&214646099849&~: _addAlarmPanel.~&214646099849&~ + ~&233744706647566&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 280 + + ~&14975672296977510442&~ { + ~&5972374&~: _alarmTimeSpinners + ~&233721384511543&~.~&6504027668&~: ~&7083038346995&~.~&6504027668&~ + ~&233721384511543&~.~&214640173127&~: _nowBtn.~&6504027668&~ + ~&233721384511543&~.~&197100796&~: ~&7083038346995&~.~&197100796&~ + ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ + ~&233721384511543&~.~&499747351624466981&~: ~&254477762679831355&~.~&7082020628281&~.~&7713442318223278&~.~&233744706647566&~.~&7082925185962&~ + ~&214628545114&~: 8 + ~&233736699967534&~: 0 + ~&8399894257374503713&~: function(~&180977&~) { _alarmTimeSpinners.~&214628545114&~ = ~&180977&~; } + ~&16346529800820831925&~: function(~&180982&~) { _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; } + } + + ~&6502786168&~ { + ~&5972374&~: _nowBtn + ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ + ~&233721384511543&~.~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~ + ~&214646099849&~: 80 + ~&7082729686082&~: 48 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Now" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180973&~ = new ~&6502586279&~(); + _alarmTimeSpinners.~&214628545114&~ = ~&180973&~.getHours(); + _alarmTimeSpinners.~&233736699967534&~ = ~&180973&~.getMinutes(); + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [0, 15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&254539508423767444&~.~&7713616118928163&~().~&7713428190834284&~(2, ~&'180921&~) + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + _alarmTimeSpinners.~&233736699967534&~ = ~&254539508423767444&~; + } + } + } + } + } + + ~&254501558939456351&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 44 + ~&233744706647566&~: 8 + + ~&7712155293725601&~ { + ~&214634455770&~: [15, 30, 45] + ~&7712922269353028&~: ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~ + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: "#EEEEEE" + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: ~&"180916&~ + ~&254539508423767444&~ + ~&6503823200&~.~&254543497768871654&~: 18 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&197102514&~ ~&180982&~ = _alarmTimeSpinners.~&233736699967534&~ + ~&254539508423767444&~; + ~&5972376&~ (~&180982&~ >= 60) { ~&180982&~ -= 60; } + _alarmTimeSpinners.~&233736699967534&~ = ~&180982&~; + } + } + } + } + } + + ~&6502786168&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&7081629735527&~.~&17520348323745447649&~: 54 + + ~&254501108490678590&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&7083116119249&~: 8 + ~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~ + } + ~&6503165774&~ { + ~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~ + ~&6504315758&~: "Save alarm" + ~&6503823200&~.~&254543497768871654&~: 20 + ~&6503823200&~.~&6503679370&~: ~&6504329801&~ + ~&214622605608&~: ~&7082020628281&~.~&8399340017260114793&~ + } + ~&254494525842443467&~ { + ~&233721384511543&~.~&6503816592&~: ~&7083038346995&~ + ~&254542236275632405&~: { + ~&7082020628281&~.timerManager.addAlarm(_alarmTimeSpinners.~&214628545114&~, _alarmTimeSpinners.~&233736699967534&~); + _addAlarmPanel.~&9195823055201242195&~ = ~&214625660372&~; + } + } + } + } + } + + ~&425121728314878811&~.~&214599571833&~ { + ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ + ~&214632764553&~: "Flash light" + ~&478136262235079021&~: "Blink the reading light when the timer ends or an alarm triggers" + ~&7082453764199&~: ~&425121728314878811&~.~&7081261925573&~ { + ~&6504315758&~: ~&7082020628281&~.timerManager.blinkLightOnNotification ? ~&"5971526&~ : ~&"197060196&~ + ~&254542236275632405&~: ~&7082020628281&~.timerManager.blinkLightOnNotification = !~&7082020628281&~.timerManager.blinkLightOnNotification + } + } + } + END TRAVERSE +END AFFECT + +; Notification bar for timer finish and alarm triggers AFFECT [[2328484894988065446]] IMPORT [[233700934949963.233693781272506]] [[180922.180921]] + IMPORT [[6504469795.233736922911970.214633057601.214626274418]] [[180922.180921]] TRAVERSE [[8397788359424131273]]#[[6504254477]] > [[8397993708429497603]]#[[7713531976371484]] LOCATE AFTER ALL @@ -308,16 +771,51 @@ AFFECT [[2328484894988065446]] ~&233721384511543&~.~&214640173127&~: ~&7083038346995&~.~&214640173127&~ ~&233721384511543&~.~&7082507142622&~: ~&7083038346995&~.~&7082507142622&~ ~&233748328658231&~: ~&7082020628281&~.timerManager.~&16765420033347753489&~ + + ~&13733777459642361598&~: { + ~&5972376&~ (~&233748328658231&~ && ~&7082020628281&~.timerManager.blinkLightOnNotification) { + _blinkTimer.~&6504295855&~(); + _blinkTimer.~&214618014052&~ = 0; + _blinkTimer.~&214641748151&~(); + } + } + + ~&214604601930&~ { + ~&5972374&~: _blinkTimer + ~&7713147298280334&~: 1000 /* 1 sec*/ + ~&7083121289162&~: ~&6504329801&~ + property ~&197088788&~ ~&214618014052&~: 0 + property ~&6504243117&~ _savedValue: 0 + ~&495358363329399331&~: { + ~&197102514&~ l = ~&7082020628281&~.timerManager._blinkLight; + ~&5972376&~ (!l) { ~&6504295855&~(); ~&7083121450889&~; } + ~&5972376&~ (~&214618014052&~ >= 6) { + ~&6504295855&~(); + l.~&214644635174&~ = _savedValue; + ~&214618014052&~ = 0; + ~&7083121450889&~; + } + ~&5972376&~ (~&214618014052&~ === 0) { + _savedValue = l.~&214644635174&~; + } + l.~&214644635174&~ = ~&214618014052&~ % 2 === 0 ? 100 : 0; + ~&214618014052&~++; + } + } ~&6504337259&~: ~&254477762679831355&~.~&11119534664549952261&~.~&233740920352621&~ ~&425121728314878811&~.~&11119534664549952261&~.~&233695222288046&~ { - ~&6504315758&~: "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" + ? "Alarm at " + ~&7082020628281&~.timerManager.alarmNotificationText + : "Time's up! (" + ~&7082020628281&~.timerManager.fmt(~&7082020628281&~.timerManager.totalMs) + ~&"180914&~ ~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~ ~&7081629735527&~.~&8399743405844438450&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ ~&7081629735527&~.~&499747351624466981&~: ~&425121728314878811&~.~&7082020628281&~.~&233740248806464&~.~&214641496386&~ } + /* Timer buttons - hidden during alarm*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: ~&"233701679664206&~ ~&254542236275632405&~: { ~&7082020628281&~.timerManager.doReset(); @@ -325,9 +823,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+1min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 60000; @@ -337,9 +838,12 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" ~&6504315758&~: "+5min" ~&254542236275632405&~: { ~&7082020628281&~.timerManager.totalMs += 300000; @@ -349,15 +853,32 @@ AFFECT [[2328484894988065446]] } } - ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { } + ~&425121728314878811&~.~&11119534664549952261&~.~&233683758819504&~ { + ~&233748328658231&~: ~&7082020628281&~.timerManager.alarmNotificationText === "" + } + /* Universal Close / Dismiss*/ ~&425121728314878811&~.~&11119534664549952261&~.~&7081261925573&~ { - ~&6504315758&~: ~&"214584551711&~ + ~&6504315758&~: ~&7082020628281&~.timerManager.alarmNotificationText !== "" ? ~&"233683755411397&~ : ~&"214584551711&~ ~&254542236275632405&~: { - ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + ~&5972376&~ (~&7082020628281&~.timerManager.alarmNotificationText !== "") { + ~&7082020628281&~.timerManager.dismissAlarmNotification(); + } ~&6503784146&~ { + ~&7082020628281&~.timerManager.~&16765420033347753489&~ = ~&214625660372&~; + } } } } } END TRAVERSE END AFFECT + +; Capture Light reference from the QuickSettingsSlider so we can blink it +AFFECT [[9830508555522680663]] + TRAVERSE [[425121728314878811.7081916140908]]#[[6504254477]] + LOCATE AFTER ALL + INSERT { + ~&254480451320573660&~.~&495334332051582499&~: ~&7082020628281&~.timerManager._blinkLight = ~&6504254477&~.~&214633057601&~; + } + END TRAVERSE +END AFFECT diff --git a/README.md b/README.md index ee97f84..301d2f9 100644 --- a/README.md +++ b/README.md @@ -92,13 +92,19 @@ Use [quicksettings-clock-serif](https://github.com/rmitchellscott) by rmitchells ### `quickSettingsTimer.qmd` -- Adds a countdown timer and stopwatch to the Quick Settings panel, under the light slider. -- Switch between Timer (presets: 1min, 5min, 10min, 30min, 1h) and Chrono (start/stop) modes. -- Preset buttons respect the add/set mode toggle : increments, replaces. -- Notification bar shows "Time's up! (duration)" when the timer finishes. +- Adds a countdown timer, stopwatch, and alarm system to the Quick Settings panel, under the light slider. +- Timer: presets: 1min, 5min, 10min, 30min, 1h; add/set mode toggle ( increments, replaces), start/stop/reset controls. +- Chrono: start/stop with lap-style elapsed time display. +- Alarm: configure recurring alarms in the system clock settings menu with a time picker (hour/minute spinners), quick-off buttons (00/15/30/45, +15/+30/+45), and a "Now" button. Each alarm has an enable/disable toggle and a delete button. +- Flash light toggle in the alarm settings page: when enabled, the reading light blinks 3 times when the timer finishes or an alarm triggers. +- Persistence: alarms and the flash light toggle are saved to `file:///home/root/alarms.json` on changes and auto-loaded on startup. +- Notification bar: shows "Time's up! (duration)" when the timer finishes, or "Alarm at HH:MM" when an alarm triggers. Timer offers Restart/+1min/+5min buttons; alarm offers a Dismiss button. +- Quick access: an "Add alarms" button in Quick Settings opens the system clock alarm management page directly. +- Setting page: Go to `Settings > Help > System Time` to manage alarms and the flash light toggle. - - + + + **Available for:** `3.24.0.149`, `3.25.1.1`, `3.26.0.68`, `3.27.1.0`, `3.27.3.0` diff --git a/hash.sh b/hash.sh index 16b0b3d..8e275aa 100755 --- a/hash.sh +++ b/hash.sh @@ -2,7 +2,7 @@ # Configuration QMLDIFF="./qmldiff" -HASHTAB="hashtab_3.23" +HASHTAB="hashtabs/hashtab_3.26.0.68" # Usage if [ $# -lt 1 ]; then diff --git a/images/quickSettingsTimer_1.png b/images/quickSettingsTimer_1.png index 3d1e42c12f5c82f5a451922cfefac218a2bc6052..7f974275acc1a3ed85d554ab59f0a21f7c578739 100644 GIT binary patch literal 15302 zcmeHubySsYyC)zjh)4;%G?FT?H{B^M5`uJhcQ;5W2#5$sqm-~=(_MlfN_RH`(h{4F zxgX!}`_7!TX8xEnvu2%Hb9A}9+1&NqaXr7d_G=X-S=>A1chJz#aOLHsRMF7THNn3I ztXtp{&ziAC@E^LXs_YXqWFO@^_(8>7OWs0J5$!Q3W1(T76QbRKs(`;}5!Ps!f68cR zOyGYsv>RFI|MuG~jDP+XT{G*(zse0zMX%iGx1bYk>la#XT8hsEO&#rF#%7Kt<}fdN zC#V9Nu$Lex+MBx>(|Xz4Ik*aXiO~J2AqdLQ$8b8@KULgpMd-8?RcIw0UCe2DVeBw= zI?+3{w6wx5W)^~~QZoN&4t^4$vvPBD5`@D&Jw0KbTrfu$OE`ysfB>AG6VA!W25PXm zdONrod$BpV(*NDbKl_m~cQtjfc5<_JbfAU$H8yc{cN3wbg9iH7pTFnnW^M6rBRRPK z5IbiJYfAtNT3PYa?D!W*lgOQ>BMLC53)ckj!{bL+qI5hZwH<`bm^v|c@ zQAO_v!~eBxqIbv)7H^}W3AD&dNxbkv-%iJFq?AtY++=(Z%rJ9I;Gh*2ipem;($0vU zfQycKU-|}yf|l6huEI=p7^$9sp4h{O^_ZUS3A!+JA|r_%iU-(9p+-*##c8nx8Z4d*vb72Va{JvDR5pUHnjAi8y6Wv|`|cd}yA zq6M2^o)LE|IbeySVc^Tr1=TV=U;GRD{3Ry-_)D}O_t3G#XE&-XRp% z!@*z>f~qiJys{-Ej*$Q@AIhOQvthm6f~vg3qD9KT;J*c0X3?UzSJ8@>Oa7M7BK;gC4LE^H<#}qpT>j zIFG=3+~=2q9`?Henscv0j34x{s^DQCIlX#`hDrN22`p0*kHSzzuE6z^q z_)X*c_~__pX==jLj#YuRG}oTkfJ6F&*UElvGfrP|ExrU*%Z#$;d);#O-Kksac|*q4 zL*dwHoCr5`xOI=xig(V-^dK(QuYId}+QFU7z^V1-*vxp#l{=T!Kvu2w5fx$WPW@&N zOG%>%Tfiz;CWp{gsbr!16ce$s4TH$Ipcg}tLLw_i&5TPFakStMem%zDbH2OD^H)bT zt9XGYA==e;$;3k;c%l<;$a%Ur8xQ(~dVl_i?*$e3yigC&FBh85HV{X$$_|ac+i?7U zDV~$gjxC*Co$sce7}m<~HXYB^?^&ifhm&!dy&@9}Xq+@p(r=rbxJNKRdc@aq8lBAN zm?7}3o@6D%++Jwgvmxu>$6kl&)&yQ(xi9yNp4&}t)}OAXZW{E3 z+n?4J8<fO`dWZ5qNUDV%B4N(qP;Fc$QSTEg&B2bAF+# zfh2dTV{@H$nMv6858i^47?$whc0omI>XN4Gt8?3yqrGLqXxDy`@tJ`0Z4EPz8E4t- zvadu+{H;0x3&FR0PS-LWsr?V1SGcS^t(XruPmY4se}6+MP%isp+l4P-~z1Sl)(@yiSn)!ff;q$Eui%ZmaP1CT?%J)u@ zbzDYTBdtCxmUU8B zNQ#nE>-cV0^&U+-I`+Gk#YC`A``D8xfzz`);gL`xc#Zm+bs(|!et)x5$5}9w`z~>N zNB4G=e|r_0yZ>U0$dT6c_h7Quy|0-wthie%R#R-J;PuT}5(6jMOh4Xhe!3sZH}5x0 z=`mrvy4OjAcW+V|`$Ony;MH2-)`!*lO(ex@yj`$?WqsDed0}`-)t46s{kqdMm%n5c zTLRWeC8ix3ip{Im^HRr%HE^kByq2RaqS&h0vt?tepFGMC^k^rLWw=vB`9Z|Dx^BCA zdW+Pt{S|@5?}gSexc@1#<;q9sFdLp5sb%U_f#y27XtwXq%W1dbiNKOCBP zaq`oJJdxWBpA{o;DJ)tj9xFH77#=*>N+5CJ2?v8JRv8} z{Op5Ko^qxGTOl99aF(lIc-U`+#jvcCF@xN7WKRL!H1h3HS?Ebc=4FwHx7*UMBwgmb zp@8Ftd7g1S*XY65eqE39C$@cH*ISli6>a2cejC#7$wr9O<%m9K`T6fLlv+!O2`?3l z-jo=KeeJ`%A;N?*NKn!wS*n?|NWD3^rT#M9&8^C5#<^1)9gB`99Jy!Mk?A%h&%<$V zDWrey0z35Sy1LTf{!5qcle0nLldNQ(RO3z(o!21); z1apR08-=stu7g(1sb*}D(f|Tk-xV39q=b7LQ=+A3V>ZowO#2A)m%tD%;LM2ETGO z3oNF5z1OwPw8q8>yRBxQe2!Ay$ln1M%3Vq;L8eJf|C8;BvGVWSmgmT8si|vk8^k5~n=gWO(($ngat$O>ajm z_A1W??}e&6x5m~^sf&#Smp)dK6uDDBg_Wo_b;JJz&zTL)(DdUXs$?%C*++U2KW3c& zIX**{1pnEuYW}ftEn9@K7NJIMtk$gj%BLGQJ0xjm z&f2V2WK{=h-GqN}YJD_t)RZK+bEP!Uu&inz+A) zbkiepoYis7A7QS^su-Mb74)|4P2Ib|iLw2_hP8Lms`57Aw;S=Iq>)yZI7@qrpL5(G zzaf99a?I}%+giSq5hAQ<6}$q20hK3C??x4t_iHy0@V6G}`tK=rUSkFv@g^eN+2*WSg1C_7#dI)&d&`*#3HF<@vt$Es%KmjrsGGYGLddeFNt%y_a8l1i&*R+ zHLMJ5T9G%Q=+9<}@G(wzAA2no#_T~);9o1*Uxjwzb)!=;H=S~^vcA2C-0ig{oZFXH zthW7b`0b6;1eDiB=ObIuS!@zK^n4#89trJM;wQo_Mb?uBd6ZGI$HO6eGtl zyM{34OL8nHVNrWSD$JGP(lN#)Jrn3UO@9249V7UdEj3!frot=Fhvn&e7#qwXzvO7W z?uhtQrA~)1heP^iG08xAuJD7#Gg{>xq*D_h2J z4LPg7p7Oo5nv)Qd(>WT|m9wds+pp9SUfPg|vTl2fuUSmi!-8Dgo40tO5U)r+G{AMU zvbnSdo|pLEnv<@U0X{5?8eu>ZCgkkDbZ%u$%GbWI^YGU8Q%%W|EkvaFG&Nafcz?UM z&CSWpZr*jDrASZ{WlDC>#`Gn}T^uhb6016S{K_Jht8VxMm68`NM@fbO-ft`W#YRmB z8Kyo-NA-Ng6HD8OP5l0unmht|%&5#WU}WZ0M`4gaz&kjN`GVg*aoZv(sUzP=PW&r+ zy|bj}Amimt#B*|O9{eKAfwOrpukEVwr3gV68fR42r2DXh(@Vs0R)+XMcf8el)JI09 z`n%&f3Ca?if4R#S@x<=)2tOx1DUiR%#xwkvyOW_WzUEkd;tgviT{?W>n~xtVXksgi zp5{=&CQM^RUVaS|P1QFbvFy+%Qrugy-)n5`!Y+#}A;${9S{6HL-CKxcDJ{T$f(i{; z=j8&gYn4$zrvK6F9F1K`>vxIGQiQzTvM(RCj-RBG zoZIq*1Uz)pLtq`6a#;3JHW)l7qFN*-GOsTzYXR#rqf~9xCM{xti-&0#(0j%bP+T?U zvLsW{-M!?-&Vc{QvPro9Y(U_%@%>Buuq5&I7(tZOZte2Dh9br4_GgW5*CFx?_X6~_*O8AB3J@g?JN4ajt5h&Ve04*i;lfjG;(HdD3ap=4$IEaaeuakD;+Wf5;=?IY0FH@BCf8y$WBH^ACAs0?gEP@gdam z31DJRPQKrT7*aA|NIhZMP|G_6fSLYh@BG&NE`68Ph0z&C(vVX@OfNbi6Cj&b?qIPIHMCb?DGdN)Y_cOs1B_KC z9c^i9gYDHdeo#;nCjNhQ{lBpwMnOpii|>gr5Sk^t0OB`5ND~T@cB_5qwj?k;t1$y# z`w9S3QwFnTQy~sU>3=wA0fh!ti+2Qu7jpY--5iD&#~rb(J#uP{Dvvn6`~8r9|I6Pt zwfShumSx($CVhpbQnINZHKtqQa&@|DeuxRz;j7r@ZE>+>yvCKtaKzXJBSA4x<9wc`9|D;LlzS|@OCsUzX?Xc|tJ zwpr2=u(DOrk9?LX+O*$#n`UAPsaIFNf3h5_sU&uJ*tO6aLch*8X%^pAX+3=B`CdnC zW5Vx_K*Njg-DSfE50LgQw_bEEKPF;&_6lp|1BdBj$HqMw8(ho2G;J~-n->i8fZ^(T zAN2C69gIdDcEtKzp*&_tul@J3`3%~}!Py?O99HE>(sPlQqQw*b{iSPvrJHN?qu>v9 zG65GehU=5PWv-QI=KYS?T0`w)|Gjxqv2quBePwXYm6_N)&8{v^697=mXNsY4s5LGT z8S`S~854B-HIRa<7%=P7&9-M&a1PdB!|Z7e{OWv3_Rix^oItbT65kj3q1kda`s$&9 z$E10kUNd0A^d2Lr_6#RWvh<=6!)Hq^@PN?C(pi2WZ8=*QtPC*v*LK$JeWO@2P|ZzV zkLI0vNLT7P>#mu1cD5wTWJyGL3N>M%T~Z0btd&IgTuyf_LM#|?^#b)p9K(~BWc*G> z_APO^vvTatOYL%rV2?P<4IMj4#WqgIr=9%^v^Rldfnt6gE4nN@nyihtBN+iW@I! z$|OQ=nG?2EMp|R5_*pINH0&yMtAcHO!K_C2XE{|>2u9J+!*6mP?)WS2|BP2oIi3$} zSv7FSczpa;+$aagh%X$auspUctN17;V|P!MA}$DH124w|c_5lS3D&qb*)qdgqgaR7 zQ=oh|>bm)aAo#121K1)5H~-8%KnGv(mvzG$q>c`DAjKoDXtbe@?tG8R@ZzoEXv1I+ z#Hdrp4FhL;Qu+GRJm&s8|JgFkdqQ;}+|>=D{J)WLSxBW#7)MaioqKzV z?#IPSl|wrhcX<*65BOeUc)6kJeB48!Ii`zJf3BA?uiYB+m#^gq6`KcXyNw4*?GYPnrE!;yLZfR9 zN8jtM2Iefg{l@08o<3!2dD+}A}#trBT^2sCUidcnGS#J`F>upx- ziRKLo6_jf{43O2hP@t&+wVYeZcg~?ZY_=j(?*{f?kfy{`>})Vr=3;Z33@xtxkr1S; zFjUvvZUa%Gef^e)9~6wNk7iu^UqwM87TC7F!}Vc$ZP{3Asy`P;cBZ5V z1S1f^wd>+w;H8|>*SV?XPj-&lbZDEbuuQFUT_ZUkClqX!h(jMhfCCWjqT@+z=($h^~+UeU+AIsw6JT>6M&77A+HA<8fPmOEql~FRFSV1V(u~ z{IUJd;ymECTcriMcF?MBVltPdM&WVpcCY|z8nhtw64i7z zGu{Q%pcki$c!64zZo`W7>!Zv5dmW@Wqh;_*l~|q+GdQA%T}<20qW;L2WcR(#5p!6&KQB#s55=Mz z-~lr~(4J=ZFb}3~1d?5q4ob2gcsO2xfUpy*|aKP|ETo|tqT<`yaS`H|pId5CE zl7QjSEdc`m|6<~QE%c}o-Sz+7dfTESlGp->(-x?W(LB`x?vEo@1p4~=d4??kz$-zw z7|4>y1LFT6X3X(t*MsR~-ql8rJ)WJyJ1?y74c=(SzT@2y||w zyBYY3tri*z;NCc){F!;-M*O*g<=xKKz_$)97``AZcOP_m)d_B@X*{rIysZ(dU34Jv9%mQ}d zZk(;{?y-n~Ixp#RhDIsYuq^2q?I1*2@V}k^QHm=H$|^mD*_Eu@IAO3A90nd9-sxgfU~@^-ysMNw}+rNNs0^`$*goNyVBNMGJ%f;en?Ly9_odS%5 zRNw8ns+%sAZmrWtZ{Sb$$WYju9RUr9+MR;aOfJ^6*o{^}_v*AikXM$<{XK}m!IM6l z#l65bvZnUk;y4JQx%dM4J*(jq4(x#SG#`&r^Ev3@(Wqaa?=?))+>i$i>&r_z$kKE zdd;k3EOIy?*;^8LX?qTb_^8anphxwX3FK*e42Nf zA9%)G0RT=amB&QuvlQ+htlH)6jlkJj1$GG^P-YN7&wvF(MUsCc{?+lAl<}E=z6Fnv*}~`XWs` zW2%-u+@82Ro_AydW=sSzwbw%M6wWR8I`Bp+NoLOU8=3(Ra^#|R#8}Q{+1I1?zCt*- zb^}uoxIew%J#WVB1`dT73#+yv*RttsMdb=0$gJH!4M5%=E}iK6z>zKMcM_zG8jr2^ zDZ1mj*2g1D?VWQ9q`jf+{LvWqngpejq!m56?-qCk_IN^D?B}yks8nRf`^b`F5s^qT zPFIR~`G%{nlxf73io+yyHc{OAgG7m%#zf%t<#zrR3N;|k&g!%nMw$Yh$f~a-K;1)n zgP(gKKGuBF0k`mp_GTH=zi_Y1&tggN!jGWETz`3alCO-q?hL$;tym1FNV##3|BF)l z`fWW)YUVVjCpl~(f>mm>%iBvPhV#?I%3`xAI*v`K9*2f)i<+vgPm>=_JJgrmf`jh( zoaBt&b;EyYD7ua4oJfN7dk&iOiOwEiCfa6ruadbAEAmasQ(mgF0HcY@<69#ijc(aa zq1tb>|TLb-5z zbf_C24Q%m&oJnpscKHlpsH3MJq8O=yr!1i`v}6oakSa-?!bFmxjSnPA78Pu(w$in61dty+ALo<+5JD2Jh?jbPUE6CjMg`4(;%aJoV*ZN099 zKL?JAQN@m>&LyZoZl@Y*5kTy=PPyCKo5F)wm1b{O6T+XCLzwF5^*r0rKP|~92zOn2 zAe@}bi}$2qMC7xwc4n_tOHnfz#Ny^p1wquX3CEdyE>VgFq&xfv7dyw<5b_K4P4j@O~i&-(b*ygPByUXlB1iL|A3I%NcBXyOL- z)i5rej?&Su?AR%FY6-ZWCRHnbKLC)uYof<>DaYHY$2wtxMmL=8Kgx{RH|vxD+P*gV znhj+p8%=Ib?epuwwCV6AN{4?IDY4w6splM~Z*b5~q&%S;6wAMam7Qxp({pgTvBV9Vp>{M;QHX_A6(+?*B{>*Rsys8xhLXC4PlG8@oV8zP^qeRqm{Dw{-5ex$#s9Q z%;+Rkl^fCgxD&!El{)E7B;&t@kSW-_j@l3+p)a}i-v3iqxOwfza+@Y8@BT>!Un~Sh zzHbI*_`xnvI(n!V-lPdVH);lj_tmaQa7XGMw(jo_e>V%|rrCp55CtenvMv{sAYej^*m?&)jTvR6iw4q0IF3ner0k(o^UAD$7zIAeF>Q zbf4-ClSlDG2w#-ocR?)Q=LlA1W`kOJngG`F=Pl2BBG}7(Q4g(s> zix!mwmCJ#iUh$5O3Stnq0Lj4pLiY$N7Xctulp_b_ab=+c$aJGr4l*_VpXvUVnc^>n zdI+rm^&tgP;qFrM5A@k#8-`=9`~!y2<6gj}{`tX#%zm=)l4EK4LXm91DF zVyDqiq*d0I7I3z{y59}wgEf0j+D=S8%2m(L@F_gqiw(59g-iZ3kCSk`{K=>!wx{s{ zq{FS0cf$}sSu80nR^n9IUets&9S(K9yor;hnacYkwz9}WyV=j%yypYQkr1ih@yUfs zNVyBXn6n!}B#U7rsYICSyF>CSAm6bRH8C+r=wlF0*uX0s{IUru<+I!04L3L>$;UH2 zD7v2ih*Qbjzh<4Eo;YKKON|Q9S^!C1Rb)aQMU#F9y@)g{Z!D`fXHY7W;Yl0mzS(YE z1n+t~uuSt>)(GAN?xU|-S8 zYw_(3S+vD=Tn5zk7;5_iVbl4z25z>+L>m*&th^)o*0tN#c@*BjRD#uk4Ph~4`9qu6 zypNu;r_8H2SgE76QUwEOb)R)#*Y173{@t`>78r+X+GW(p+42)f(>#sAf=D`yZ@{&x419P3bJ z0mTdP8LaNWn@APfsr}k`IHYidTf46tdpHerrCw&SQ+Zc_A1RtvQ_zAffM<{@k<9s& zK8ue&4d_a%EmxZ@J%#EBpZ9-Kx5QrW@HOw@ayc(ar5coIJrK`&hH)3?y*%l3AJ(r8 z+S(^rZ?1rf!``q}9yNHLecuxx^bhkFt9;dK^*lTY#U`>)CRy@A{3*aw6jw$iJ|II0i%}j&-P-9DZI99h0-#S1VBLv^u~a6?n3fGK#xY8Nn|jJ^ZFx#oW8 zI#YOjy2)7tX0@t2f0pQdvDew#7KYRNj!|K2a}wTks9LccBQ#bV9B{&YZ|==NPdPbK z8AUal8&=5W6X)Y_E_Shq=elNZ@$D1JF0lmW1>RZt&FISu2d^lhdfEbup+u}LPRXMmKRk6e z8O+0`ft!NmkIcAzsD~(4vJ$}nqF6eW>t&Cns3|qj1@(w)ftS!5gnpx^Bml+oRRJR# zYqWv}U~ed+auVbW_5uoNdCgt<$0y+#)B1X`7I>9EX_1ej1{}`YPcTLbxe*8yjZTP<(u>R>bDnVShTI_8&Gdo71%1F z$Qb}M%Zjf!qXwnk=i4>gwa32(vqKn;xW4Ce>_M)PFd)lJ7xkO0=F)eMTKj@TA667c zj&NquTAfeNUwM>v=SyO26pY~j=;he-*&vn%%F+W&hzIgGPrEdmhiuQ3UU`f zfb@vRAd^w^XIgBM=C<|Ne#del6&}U$LI|ElVZ3>wulg$%h)jzZ5YJ6{7FgueKS-50 zEA6c;Z(HAYi17bj0U+N~(MRp1Ma;RcX%P1=Qg{8E-;a1*yshSB#;Lr2bTd3?eFu~!12!!HRa;m-MBByH{R6w%<$LV3T~#$a<)@6 zvo1*aRz=FHrQ#~RoJa2If3}|Ai+-C@MQCpN8_o5JtZzh`!^wcur}jhAmXk0xS#KUY ze7sSXs2S4@XWia8S-nmCak#})=8koVLEohI@Rv{v6%cc*y@_RihkUs>Jt(I4`GWJ{ zsrY74AV`iPEB-!V6oR`oHAbW?Jc#sFe;VC=i_c8Tb!>hbB;WKn2A=B*#pQC0V-qn= z2(4|bd>7Kz?l<6yrAG=_JC=2jc086 z-Fl={jVNgr9P%E>NlYv*r~#rx$y9sF+b(kMqAcxe5HR|zs;?1-mxcZ&lSSGU8!1|4 zCepL~^Yq{=3vBmU72=YAdq`B6ITE6?p`M?NuvFcPl^t5CsE^?~#uL2j9fo3N+yap$Q(U%D8 zGxHI!A?ISQ*Q<5fA}~i9iss_XJrD1fN#coczm!qPf9YPJsqe1N0K?a(5(e4Obk41W zY{iYCGg;Zz;Ael;??oB0-n#2 z>&fp$k2H0}Ee9yS@*wkC_`6A_fyVT@Iel@FK{+oYxwHKpi#vPKK};qiw)&Ro?mk$d zj?G75VkvS%KZkSV<9k3xvZ;V|Tnp1x<%jF{YDyeXesxV}_@$bT{>>TS6s)Fu&T&AZ z61GovSGKMN&s>?`CwF%|mgKvBKIE1z27CoKJFM z1phz32hl9bsM3Tx-29eZ>nCzgL?l$Y|IR>&=u4pz?)8r=8al+Z&qx14gk!jo6}~3J z!0ZBFgGrPoX~-pd`xcs5^=$+yDP;jm*`=LofZ>fp%Lv0=_`^5D#`8Qt;pch2#gh;u z1#I7oT>m%e)D)ldbuU-ofv+2NbosEXs1Qs#UR54ysrlJBl6q9!f$j^_!Nkw*KcF2P zp}*m6XG9SB(_KC&R|{rs0@(v!t^pJhAcnkz_u@c+MSsi$eN}}PnRWxB8&3f`N<<@$ zhsyYxeSlG*VK4#^q7W1*50ziBtO1=DEtn9rU=;6QfSiT)1Xn;{g2b@_a3IVwAp~W# zr7i)`t9TZKpRiRputE8Yt@FyBlY_Df1lOE&5o0yChQ}Pg=8$`_A$`QofI6D-ldqGU zfi`AIn|pvs8e8U|!6xZ}WVjS=h32auoD72~#2okQS`tB7n`Bgd{K6=6RfqtuRXpW@ zYI&_qlJVE@-1kpjWMk_6J_Nk*y?2vCl1f?-f4x@~w!La2TN{a9Rd=oPa+}2@OisMy z0!H3QGQRjVB2~M>BH8<3mAKeac5Phfmt}v3{rm&N`Pr(y$h`Q;oDhaXDpnZNQS@3ft1_&q8c zW=rn6C$9(xFteECxfAn0qMPTdW$3>J+;wgK|Y;PlRvl$moT1^?u;^+LJCce&-dfoH!N@;ed}kTf$HwnxgPF zNcvHfkW9@n-HGx@=Cw}&!gP5ur+H+-(fi(^T!rEEtuI>cf|ZZO<24Ph_LHK+HT1$0 zi8PZEIw3bIxE#w%?4!Cy$KQ#2&%h~3b}Iv>fEz2o-lnM;ksy`K98llxoG8c?Fa-_* z)%4*DN|4PL4?KJ(eLGNr3OESc6M6Yd;P54b!^gR9LIE(l7U->$SA-b25M2!5I0G;Y zDs+P0gsRsI_<>Eq1O|ClKLIQY!9;*l%M_J605jkOgP0F>@B*8n4D=Rb@ADYA5br^r z8(TcA8dQjZYzn(!HD@rR|C;iDc$M!y9QHD5KpohzowSceS$x3;`!)*#*Y?<_k=r2O@g?w8rMVU`!G=44 z4fn8pzHtL2HcEiR#!qBU7=Q`#fro6UdWZ@}!)yeR(P!{3KRP;AB?UM?vpVn3z@!X7 zaBQ-=l?LMFR5UnC4s1{TK}>{$Vg7^DJ`pQ-5MXz7iHm~16)P{TB!zrp^zy#}+HZ7C literal 14474 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 diff --git a/images/quickSettingsTimer_2.png b/images/quickSettingsTimer_2.png index 068290ffe937a13bec79bda1cf00d4392bf1a916..1aa3f5a05140d16debdd68a666c8edda20df90ec 100644 GIT binary patch literal 11938 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 diff --git a/images/quickSettingsTimer_3.png b/images/quickSettingsTimer_3.png index ae2188d58f5b09851b6961ee891e325a32f495de..d1a5cf5056c5a9cb722547cb4281efc52b8546d9 100644 GIT binary patch literal 17113 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 A4FCWD literal 12453 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≦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 GkN*cEobMd~ literal 0 HcmV?d00001