(function() { const TIMER_IDX = "smpltmr", alarm = require('sched'); function getAlarm() { var alarmObj = alarm.getAlarm(TIMER_IDX), min = (alarmObj && alarmObj.on) ? alarm.getTimeToAlarm(alarmObj)/(60*1000) : 0; return { minutes : min, text : min ? ((min<1) ? "<1" : Math.round(min)) + /*LANG*/" min" : /*LANG*/"OFF", max : alarmObj?alarmObj.timer/60000:1 }; } function changeAlarm(t) { var minutes = Math.round(getAlarm().minutes) + t; alarm.setAlarm(TIMER_IDX, undefined); if(minutes > 0) alarm.setAlarm(TIMER_IDX, { timer : minutes*60000 }); alarm.reload(); return true; } var smpltmrItems = { name: "Timer", img: atob("GBiBAAB+AAB+AAAYAAAYAAB+AA3/sA+B8A4AcAwMMBgPGBgPmDAPjDAPzDAPzDP/zDP/zDH/jBn/mBj/GAw8MA4AcAeB4AH/gAB+AA=="), items: [ { name: null, get: function() { var alm = getAlarm(); if (alm.minutes > 0) { // draw an icon showing actual progress (don't ever go 100% as looks odd) if (this.uses) { if (this.timeout) clearTimeout(this.timeout); this.timeout = setTimeout(()=>{ this.emit('redraw'); delete this.timeout; }, alm.minutes<3 ? 2000 : (alm.minutes < 30 ? 30000 : 60000)); } var gr = Graphics.createArrayBuffer(24,24,1), poly = [11.5,13.5], s=Math.sin,c=Math.cos, a = Math.min(alm.minutes * Math.PI*2 / alm.max,5.5); for (var i=0;i { smpltmrItems.items = smpltmrItems.items.concat({ name: null, get: () => ({ text: o + /*LANG*/" min", img: atob("GBiBAAB+AAB+AAAYAAAYAAB+AA3/sA+B8A4AcAwAMBgAGBgAGDAADDAADDH/jDH/jDAADDAADBgAGBgAGAwAMA4AcAeB4AH/gAB+AA==") }), show: function() {}, hide: function() {}, blur: onBlur, run: changeAlarm.bind(null,o) }); }); [+30,+5].forEach(o => { smpltmrItems.items = smpltmrItems.items.concat({ name: null, get: () => ({ text: "+" + o + /*LANG*/" min", img: atob("GBiBAAB+AAB+AAAYAAAYAAB+AA3/sA+B8A4AcAwAMBgYGBgYGDAYDDAYDDH/jDH/jDAYDDAYDBgYGBgYGAwAMA4AcAeB4AH/gAB+AA==") }), show: function() {}, hide: function() {}, blur: onBlur, run: changeAlarm.bind(null,o) }); }); return smpltmrItems; })