2022-05-11 19:58:00 +00:00
|
|
|
const storage = require("Storage");
|
|
|
|
|
|
|
|
exports.loadSettings = function () {
|
2022-04-18 13:05:41 +00:00
|
|
|
return Object.assign({
|
|
|
|
enabled: true,
|
|
|
|
startHour: 9,
|
|
|
|
endHour: 20,
|
|
|
|
maxInnactivityMin: 30,
|
|
|
|
dismissDelayMin: 15,
|
2022-05-11 19:58:00 +00:00
|
|
|
pauseDelayMin: 120,
|
2022-04-18 13:05:41 +00:00
|
|
|
minSteps: 50
|
2022-05-11 19:58:00 +00:00
|
|
|
}, storage.readJSON("activityreminder.s.json", true) || {});
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.writeSettings = function (settings) {
|
|
|
|
storage.writeJSON("activityreminder.s.json", settings);
|
2022-04-18 15:02:20 +00:00
|
|
|
};
|
2022-04-18 13:05:41 +00:00
|
|
|
|
2022-05-11 19:58:00 +00:00
|
|
|
exports.saveData = function (data) {
|
|
|
|
storage.writeJSON("activityreminder.data.json", data);
|
2022-04-18 15:02:20 +00:00
|
|
|
};
|
2022-04-18 14:41:57 +00:00
|
|
|
|
2022-05-11 19:58:00 +00:00
|
|
|
exports.loadData = function () {
|
2022-05-12 09:34:42 +00:00
|
|
|
let health = Bangle.getHealthStatus("day");
|
|
|
|
const data = Object.assign({
|
2022-05-12 08:30:11 +00:00
|
|
|
firstLoad: true,
|
2022-05-11 19:58:00 +00:00
|
|
|
stepsDate: new Date(),
|
|
|
|
stepsOnDate: health.steps,
|
2022-05-12 08:30:11 +00:00
|
|
|
okDate: new Date(1970),
|
|
|
|
dismissDate: new Date(1970),
|
|
|
|
pauseDate: new Date(1970),
|
2022-05-11 19:58:00 +00:00
|
|
|
},
|
2022-05-12 08:30:11 +00:00
|
|
|
storage.readJSON("activityreminder.data.json") || {});
|
|
|
|
|
|
|
|
if(typeof(data.stepsDate) == "string")
|
|
|
|
data.stepsDate = new Date(data.stepsDate);
|
|
|
|
if(typeof(data.okDate) == "string")
|
|
|
|
data.okDate = new Date(data.okDate);
|
|
|
|
if(typeof(data.dismissDate) == "string")
|
|
|
|
data.dismissDate = new Date(data.dismissDate);
|
2022-05-12 12:18:33 +00:00
|
|
|
if(typeof(data.pauseDate) == "string")
|
2022-05-12 08:30:11 +00:00
|
|
|
data.pauseDate = new Date(data.pauseDate);
|
|
|
|
|
|
|
|
return data;
|
2022-04-18 15:02:20 +00:00
|
|
|
};
|
2022-04-18 13:05:41 +00:00
|
|
|
|
2022-05-11 19:58:00 +00:00
|
|
|
exports.mustAlert = function(activityreminder_data, activityreminder_settings) {
|
2022-05-12 09:34:42 +00:00
|
|
|
let now = new Date();
|
2022-05-11 19:58:00 +00:00
|
|
|
if ((now - activityreminder_data.stepsDate) / 60000 > activityreminder_settings.maxInnactivityMin) { // inactivity detected
|
2022-05-12 10:21:21 +00:00
|
|
|
if ((now - activityreminder_data.okDate) / 60000 > 3 && // last alert anwsered with ok was more than 3 min ago
|
|
|
|
(now - activityreminder_data.dismissDate) / 60000 > activityreminder_settings.dismissDelayMin && // last alert was more than dismissDelayMin ago
|
|
|
|
(now - activityreminder_data.pauseDate) / 60000 > activityreminder_settings.pauseDelayMin) { // last alert was more than pauseDelayMin ago
|
2022-05-11 19:58:00 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|