Prevent display to go to sleep if user is in a meeting

This commit is contained in:
Johan Kwarnmark
2021-03-30 13:53:46 +02:00
parent c621018c22
commit 4eeefb2de7
2 changed files with 31 additions and 2 deletions
+30 -2
View File
@@ -1,7 +1,8 @@
import { app } from 'electron';
import { app, powerSaveBlocker } from 'electron';
import { logger } from '../common/logger';
class AppStateHandler {
private id?: number;
/**
* Restarts the app with the command line arguments
* passed from the previous session
@@ -11,6 +12,33 @@ class AppStateHandler {
app.relaunch();
app.exit();
}
/**
* Prevent the display to go to sleep
*/
public preventDisplaySleep(preventSleep: boolean) {
logger.info(
'App-state: preventDisplaySleep, preventSleep: ' + preventSleep,
);
if (preventSleep) {
if (this.id) {
logger.info(
'App-state: Stop previous power save blocker, id: ' + this.id,
);
powerSaveBlocker.stop(this.id);
this.id = undefined;
}
this.id = powerSaveBlocker.start('prevent-display-sleep');
logger.info('App-state: Prevent display to sleep, id: ' + this.id);
} else {
if (this.id) {
logger.info('App-state: Allow display to sleep, id: ' + this.id);
powerSaveBlocker.stop(this.id);
this.id = undefined;
}
}
}
}
const appStateHandler = new AppStateHandler();
+1
View File
@@ -206,6 +206,7 @@ ipcMain.on(
case apiCmds.setIsInMeeting:
if (typeof arg.isInMeeting === 'boolean') {
memoryMonitor.setMeetingStatus(arg.isInMeeting);
appStateHandler.preventDisplaySleep(arg.isInMeeting);
}
break;
case apiCmds.memoryInfo: