bitwarden-estensione-browser/apps/desktop/src/main/power-monitor.main.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

47 lines
1.1 KiB
TypeScript
Raw Normal View History

2018-02-11 05:24:22 +01:00
import { powerMonitor } from "electron";
2018-02-14 05:38:18 +01:00
import { Main } from "../main";
import { isSnapStore } from "../utils";
2018-02-11 05:24:22 +01:00
2018-02-11 06:09:47 +01:00
// tslint:disable-next-line
const IdleLockSeconds = 5 * 60; // 5 minutes
const IdleCheckInterval = 30 * 1000; // 30 seconds
2018-02-11 05:24:22 +01:00
export class PowerMonitorMain {
2022-02-24 20:50:19 +01:00
private idle = false;
2018-02-11 06:09:47 +01:00
2018-02-14 05:38:18 +01:00
constructor(private main: Main) {}
2018-02-11 05:24:22 +01:00
init() {
2018-07-26 22:50:05 +02:00
// ref: https://github.com/electron/electron/issues/13767
if (!isSnapStore()) {
// System sleep
powerMonitor.on("suspend", () => {
this.main.messagingService.send("systemSuspended");
2021-12-20 15:47:17 +01:00
});
}
2018-02-11 05:24:22 +01:00
2019-03-19 21:12:26 +01:00
if (process.platform !== "linux") {
// System locked
powerMonitor.on("lock-screen", () => {
this.main.messagingService.send("systemLocked");
2021-12-20 15:47:17 +01:00
});
}
2019-03-19 21:12:26 +01:00
2018-02-11 06:09:47 +01:00
// System idle
global.setInterval(() => {
2021-02-03 18:47:44 +01:00
const idleSeconds: number = powerMonitor.getSystemIdleTime();
2018-02-11 06:09:47 +01:00
const idle = idleSeconds >= IdleLockSeconds;
if (idle) {
if (this.idle) {
return;
}
this.main.messagingService.send("systemIdle");
2018-02-11 06:09:47 +01:00
}
this.idle = idle;
}, IdleCheckInterval);
2018-02-11 05:24:22 +01:00
}
}