fix idle timer

This commit is contained in:
antelle 2016-08-20 10:04:30 +03:00
parent 74ec3992d1
commit 6dbd93e4ce
2 changed files with 21 additions and 12 deletions

View File

@ -4,23 +4,22 @@ const Backbone = require('backbone');
const AppSettingsModel = require('../models/app-settings-model');
let IdleTracker = {
idleTimeout: 0,
actionTime: Date.now(),
init: function() {
this.scheduleLock();
setInterval(this.checkIdle.bind(this), 1000 * 60);
},
scheduleLock() {
let idleMinutes = AppSettingsModel.instance.get('idleMinutes');
if (this.idleTimeout) {
clearTimeout(this.idleTimeout);
checkIdle: function() {
let idleMinutes = (Date.now() - this.actionTime) / 1000 / 60;
let maxIdleMinutes = AppSettingsModel.instance.get('idleMinutes');
if (maxIdleMinutes && idleMinutes > maxIdleMinutes) {
Backbone.trigger('user-idle');
}
this.idleTimeout = setTimeout(this.triggerIdle, idleMinutes * 60 * 1000);
},
triggerIdle() {
Backbone.trigger('user-idle');
},
regUserAction() {
this.scheduleLock();
regUserAction: function() {
this.actionTime = Date.now();
}
};
Backbone.on('power-monitor-resume', IdleTracker.checkIdle, IdleTracker);
module.exports = IdleTracker;

View File

@ -42,6 +42,7 @@ app.on('ready', () => {
setAppOptions();
createMainWindow();
setGlobalShortcuts();
subscribePowerEvents();
}
});
app.on('open-file', (e, path) => {
@ -293,3 +294,12 @@ function setGlobalShortcuts() {
} catch (e) {}
});
}
function subscribePowerEvents() {
electron.powerMonitor.on('suspend', () => {
emitBackboneEvent('power-monitor-suspend');
});
electron.powerMonitor.on('resume', () => {
emitBackboneEvent('power-monitor-resume');
});
}