mirror of https://github.com/espruino/BangleApps
[Scheduler] Add "delete timer at expiration" option
parent
f5f1cc7523
commit
a8116f3e49
|
@ -50,6 +50,7 @@ Alarms are stored in an array in `sched.json`, and take the form:
|
|||
hidden : false, // OPTIONAL if false, the widget should not show an icon for this alarm
|
||||
as : false, // auto snooze
|
||||
timer : 5*60*1000, // OPTIONAL - if set, this is a timer and it's the time in ms
|
||||
del : false, // OPTIONAL - if true, delete the timer after expiration
|
||||
js : "load('myapp.js')" // OPTIONAL - a JS command to execute when the alarm activates (*instead* of loading 'sched.js')
|
||||
// when this code is run, you're responsible for setting alarm.on=false (or removing the alarm)
|
||||
data : { ... } // OPTIONAL - your app can store custom data in here if needed (don't store a lot of data here)
|
||||
|
|
|
@ -66,8 +66,9 @@ exports.newDefaultAlarm = function () {
|
|||
|
||||
var alarm = {
|
||||
t: 12 * 3600000, // Default to 12:00
|
||||
del: false, // Never delete an alarm when it expires
|
||||
on: true,
|
||||
rp: settings.defaultRepeat,
|
||||
rp: false,
|
||||
as: settings.defaultAutoSnooze,
|
||||
dow: 0b1111111,
|
||||
last: 0,
|
||||
|
@ -84,6 +85,7 @@ exports.newDefaultTimer = function () {
|
|||
|
||||
var timer = {
|
||||
timer: 5 * 60 * 1000, // 5 minutes
|
||||
del: settings.defaultDeleteExpiredTimers,
|
||||
on: true,
|
||||
rp: false,
|
||||
as: false,
|
||||
|
@ -103,7 +105,7 @@ exports.getSettings = function () {
|
|||
unlockAtBuzz: false,
|
||||
defaultSnoozeMillis: 600000, // 10 minutes
|
||||
defaultAutoSnooze: false,
|
||||
defaultRepeat: false,
|
||||
defaultDeleteExpiredTimers: true, // Always
|
||||
buzzCount: 10,
|
||||
buzzIntervalMillis: 3000, // 3 seconds
|
||||
defaultAlarmPattern: "::",
|
||||
|
|
|
@ -6,6 +6,7 @@ if (Bangle.SCHED) {
|
|||
}
|
||||
|
||||
function showAlarm(alarm) {
|
||||
const alarmIndex = alarms.indexOf(alarm);
|
||||
const settings = require("sched").getSettings();
|
||||
|
||||
let message = "";
|
||||
|
@ -36,19 +37,25 @@ function showAlarm(alarm) {
|
|||
}
|
||||
alarm.t += settings.defaultSnoozeMillis;
|
||||
} else {
|
||||
if (!alarm.timer) {
|
||||
alarm.last = new Date().getDate();
|
||||
}
|
||||
if (alarm.ot !== undefined) {
|
||||
alarm.t = alarm.ot;
|
||||
delete alarm.ot;
|
||||
}
|
||||
if (!alarm.rp) {
|
||||
alarm.on = false;
|
||||
let del = alarm.del === undefined ? settings.defaultDeleteExpiredTimers : alarm.del;
|
||||
if (del) {
|
||||
alarms.splice(alarmIndex, 1);
|
||||
} else {
|
||||
if (!alarm.timer) {
|
||||
alarm.last = new Date().getDate();
|
||||
}
|
||||
if (alarm.ot !== undefined) {
|
||||
alarm.t = alarm.ot;
|
||||
delete alarm.ot;
|
||||
}
|
||||
if (!alarm.rp) {
|
||||
alarm.on = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// alarm is still a member of 'alarms', so writing to array writes changes back directly
|
||||
// The updated alarm is still a member of 'alarms'
|
||||
// so writing to array writes changes back directly
|
||||
require("sched").setAlarms(alarms);
|
||||
load();
|
||||
});
|
||||
|
@ -75,7 +82,6 @@ function showAlarm(alarm) {
|
|||
buzz();
|
||||
}
|
||||
|
||||
// Check for alarms
|
||||
let alarms = require("sched").getAlarms();
|
||||
let active = require("sched").getActiveAlarms(alarms);
|
||||
if (active.length) {
|
||||
|
|
|
@ -14,6 +14,14 @@
|
|||
}
|
||||
},
|
||||
|
||||
/*LANG*/"Delete Expired Timers": {
|
||||
value: settings.defaultDeleteExpiredTimers,
|
||||
onchange: v => {
|
||||
settings.defaultDeleteExpiredTimers = v;
|
||||
require("sched").setSettings(settings);
|
||||
}
|
||||
},
|
||||
|
||||
/*LANG*/"Default Auto Snooze": {
|
||||
value: settings.defaultAutoSnooze,
|
||||
onchange: v => {
|
||||
|
@ -34,14 +42,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
/*LANG*/"Default Repeat": {
|
||||
value: settings.defaultRepeat,
|
||||
onchange: v => {
|
||||
settings.defaultRepeat = v;
|
||||
require("sched").setSettings(settings);
|
||||
}
|
||||
},
|
||||
|
||||
/*LANG*/"Buzz Count": {
|
||||
value: settings.buzzCount,
|
||||
min: 5,
|
||||
|
|
Loading…
Reference in New Issue