Merge pull request #3046 from nxdefiant/master
alarm auto expiration for events + fix repeat backmaster
commit
07fa23ee25
|
|
@ -46,3 +46,4 @@
|
||||||
0.41: Fix a menu bug affecting alarms with empty messages.
|
0.41: Fix a menu bug affecting alarms with empty messages.
|
||||||
0.42: Fix date not getting saved in event edit menu when tapping Confirm
|
0.42: Fix date not getting saved in event edit menu when tapping Confirm
|
||||||
0.43: New settings: Show confirm, Show Overflow, Show Type.
|
0.43: New settings: Show confirm, Show Overflow, Show Type.
|
||||||
|
0.44: Add "delete timer after expiration" setting to events.
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,9 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
var isNew = alarmIndex === undefined;
|
var isNew = alarmIndex === undefined;
|
||||||
|
|
||||||
var alarm = require("sched").newDefaultAlarm();
|
var alarm = require("sched").newDefaultAlarm();
|
||||||
|
if (withDate || selectedAlarm.date) {
|
||||||
|
alarm.del = require("sched").getSettings().defaultDeleteExpiredTimers;
|
||||||
|
}
|
||||||
alarm.dow = handleFirstDayOfWeek(alarm.dow);
|
alarm.dow = handleFirstDayOfWeek(alarm.dow);
|
||||||
|
|
||||||
if (selectedAlarm) {
|
if (selectedAlarm) {
|
||||||
|
|
@ -193,6 +196,9 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
/*LANG*/"Repeat": {
|
/*LANG*/"Repeat": {
|
||||||
value: decodeRepeat(alarm),
|
value: decodeRepeat(alarm),
|
||||||
onchange: () => setTimeout(showEditRepeatMenu, 100, alarm.rp, date || alarm.dow, (repeat, dow) => {
|
onchange: () => setTimeout(showEditRepeatMenu, 100, alarm.rp, date || alarm.dow, (repeat, dow) => {
|
||||||
|
if (repeat) {
|
||||||
|
alarm.del = false; // do not auto delete a repeated alarm
|
||||||
|
}
|
||||||
alarm.rp = repeat;
|
alarm.rp = repeat;
|
||||||
alarm.dow = dow;
|
alarm.dow = dow;
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
||||||
|
|
@ -204,6 +210,10 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
value: alarm.as,
|
value: alarm.as,
|
||||||
onchange: v => alarm.as = v
|
onchange: v => alarm.as = v
|
||||||
},
|
},
|
||||||
|
/*LANG*/"Delete After Expiration": {
|
||||||
|
value: alarm.del,
|
||||||
|
onchange: v => alarm.del = v
|
||||||
|
},
|
||||||
/*LANG*/"Hidden": {
|
/*LANG*/"Hidden": {
|
||||||
value: alarm.hidden || false,
|
value: alarm.hidden || false,
|
||||||
onchange: v => alarm.hidden = v
|
onchange: v => alarm.hidden = v
|
||||||
|
|
@ -225,6 +235,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
delete menu[/*LANG*/"Day"];
|
delete menu[/*LANG*/"Day"];
|
||||||
delete menu[/*LANG*/"Month"];
|
delete menu[/*LANG*/"Month"];
|
||||||
delete menu[/*LANG*/"Year"];
|
delete menu[/*LANG*/"Year"];
|
||||||
|
delete menu[/*LANG*/"Delete After Expiration"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isNew) {
|
if (!isNew) {
|
||||||
|
|
@ -283,7 +294,6 @@ function decodeRepeat(alarm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function showEditRepeatMenu(repeat, day, dowChangeCallback) {
|
function showEditRepeatMenu(repeat, day, dowChangeCallback) {
|
||||||
var originalRepeat = repeat;
|
|
||||||
var dow;
|
var dow;
|
||||||
|
|
||||||
const menu = {
|
const menu = {
|
||||||
|
|
@ -316,26 +326,32 @@ function showEditRepeatMenu(repeat, day, dowChangeCallback) {
|
||||||
},
|
},
|
||||||
/*LANG*/"Custom": {
|
/*LANG*/"Custom": {
|
||||||
value: isCustom ? decodeRepeat({ rp: true, dow: dow }) : false,
|
value: isCustom ? decodeRepeat({ rp: true, dow: dow }) : false,
|
||||||
onchange: () => setTimeout(showCustomDaysMenu, 10, dow, dowChangeCallback, originalRepeat, originalDow)
|
onchange: () => setTimeout(showCustomDaysMenu, 10, dow, dowChangeCallback, repeat, originalDow)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
// var date = day; // eventually: detect day of date and configure a repeat e.g. 3rd Monday of Month
|
// var date = day; // eventually: detect day of date and configure a repeat e.g. 3rd Monday of Month
|
||||||
dow = EVERY_DAY;
|
dow = EVERY_DAY;
|
||||||
repeat = repeat || {interval: "month", num: 1};
|
const repeatObj = repeat || {interval: "month", num: 1};
|
||||||
|
|
||||||
restOfMenu = {
|
restOfMenu = {
|
||||||
/*LANG*/"Every": {
|
/*LANG*/"Every": {
|
||||||
value: repeat.num,
|
value: repeatObj.num,
|
||||||
min: 1,
|
min: 1,
|
||||||
onchange: v => repeat.num = v
|
onchange: v => {
|
||||||
|
repeat = repeatObj;
|
||||||
|
repeat.num = v;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/*LANG*/"Interval": {
|
/*LANG*/"Interval": {
|
||||||
value: INTERVALS.indexOf(repeat.interval),
|
value: INTERVALS.indexOf(repeatObj.interval),
|
||||||
format: v => INTERVAL_LABELS[v],
|
format: v => INTERVAL_LABELS[v],
|
||||||
min: 0,
|
min: 0,
|
||||||
max: INTERVALS.length - 1,
|
max: INTERVALS.length - 1,
|
||||||
onchange: v => repeat.interval = INTERVALS[v]
|
onchange: v => {
|
||||||
|
repeat = repeatObj;
|
||||||
|
repeat.interval = INTERVALS[v];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "alarm",
|
"id": "alarm",
|
||||||
"name": "Alarms & Timers",
|
"name": "Alarms & Timers",
|
||||||
"shortName": "Alarms",
|
"shortName": "Alarms",
|
||||||
"version": "0.43",
|
"version": "0.44",
|
||||||
"description": "Set alarms and timers on your Bangle",
|
"description": "Set alarms and timers on your Bangle",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "tool,alarm",
|
"tags": "tool,alarm",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue