[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
|
hidden : false, // OPTIONAL if false, the widget should not show an icon for this alarm
|
||||||
as : false, // auto snooze
|
as : false, // auto snooze
|
||||||
timer : 5*60*1000, // OPTIONAL - if set, this is a timer and it's the time in ms
|
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')
|
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)
|
// 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)
|
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 = {
|
var alarm = {
|
||||||
t: 12 * 3600000, // Default to 12:00
|
t: 12 * 3600000, // Default to 12:00
|
||||||
|
del: false, // Never delete an alarm when it expires
|
||||||
on: true,
|
on: true,
|
||||||
rp: settings.defaultRepeat,
|
rp: false,
|
||||||
as: settings.defaultAutoSnooze,
|
as: settings.defaultAutoSnooze,
|
||||||
dow: 0b1111111,
|
dow: 0b1111111,
|
||||||
last: 0,
|
last: 0,
|
||||||
|
|
@ -84,6 +85,7 @@ exports.newDefaultTimer = function () {
|
||||||
|
|
||||||
var timer = {
|
var timer = {
|
||||||
timer: 5 * 60 * 1000, // 5 minutes
|
timer: 5 * 60 * 1000, // 5 minutes
|
||||||
|
del: settings.defaultDeleteExpiredTimers,
|
||||||
on: true,
|
on: true,
|
||||||
rp: false,
|
rp: false,
|
||||||
as: false,
|
as: false,
|
||||||
|
|
@ -103,7 +105,7 @@ exports.getSettings = function () {
|
||||||
unlockAtBuzz: false,
|
unlockAtBuzz: false,
|
||||||
defaultSnoozeMillis: 600000, // 10 minutes
|
defaultSnoozeMillis: 600000, // 10 minutes
|
||||||
defaultAutoSnooze: false,
|
defaultAutoSnooze: false,
|
||||||
defaultRepeat: false,
|
defaultDeleteExpiredTimers: true, // Always
|
||||||
buzzCount: 10,
|
buzzCount: 10,
|
||||||
buzzIntervalMillis: 3000, // 3 seconds
|
buzzIntervalMillis: 3000, // 3 seconds
|
||||||
defaultAlarmPattern: "::",
|
defaultAlarmPattern: "::",
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ if (Bangle.SCHED) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAlarm(alarm) {
|
function showAlarm(alarm) {
|
||||||
|
const alarmIndex = alarms.indexOf(alarm);
|
||||||
const settings = require("sched").getSettings();
|
const settings = require("sched").getSettings();
|
||||||
|
|
||||||
let message = "";
|
let message = "";
|
||||||
|
|
@ -36,19 +37,25 @@ function showAlarm(alarm) {
|
||||||
}
|
}
|
||||||
alarm.t += settings.defaultSnoozeMillis;
|
alarm.t += settings.defaultSnoozeMillis;
|
||||||
} else {
|
} else {
|
||||||
if (!alarm.timer) {
|
let del = alarm.del === undefined ? settings.defaultDeleteExpiredTimers : alarm.del;
|
||||||
alarm.last = new Date().getDate();
|
if (del) {
|
||||||
}
|
alarms.splice(alarmIndex, 1);
|
||||||
if (alarm.ot !== undefined) {
|
} else {
|
||||||
alarm.t = alarm.ot;
|
if (!alarm.timer) {
|
||||||
delete alarm.ot;
|
alarm.last = new Date().getDate();
|
||||||
}
|
}
|
||||||
if (!alarm.rp) {
|
if (alarm.ot !== undefined) {
|
||||||
alarm.on = false;
|
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);
|
require("sched").setAlarms(alarms);
|
||||||
load();
|
load();
|
||||||
});
|
});
|
||||||
|
|
@ -75,7 +82,6 @@ function showAlarm(alarm) {
|
||||||
buzz();
|
buzz();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for alarms
|
|
||||||
let alarms = require("sched").getAlarms();
|
let alarms = require("sched").getAlarms();
|
||||||
let active = require("sched").getActiveAlarms(alarms);
|
let active = require("sched").getActiveAlarms(alarms);
|
||||||
if (active.length) {
|
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": {
|
/*LANG*/"Default Auto Snooze": {
|
||||||
value: settings.defaultAutoSnooze,
|
value: settings.defaultAutoSnooze,
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
|
|
@ -34,14 +42,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/*LANG*/"Default Repeat": {
|
|
||||||
value: settings.defaultRepeat,
|
|
||||||
onchange: v => {
|
|
||||||
settings.defaultRepeat = v;
|
|
||||||
require("sched").setSettings(settings);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/*LANG*/"Buzz Count": {
|
/*LANG*/"Buzz Count": {
|
||||||
value: settings.buzzCount,
|
value: settings.buzzCount,
|
||||||
min: 5,
|
min: 5,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue