From c577d9e2bf701f722727284fd72ed990d6b04880 Mon Sep 17 00:00:00 2001 From: Xander Frangos <33106561+xanderfrangos@users.noreply.github.com> Date: Sun, 6 Oct 2024 14:19:28 -0400 Subject: [PATCH] Implement media status check for idle detection --- src/components/SettingsWindow.jsx | 1 + src/electron.js | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/SettingsWindow.jsx b/src/components/SettingsWindow.jsx index 44ef9dee..4b1c1952 100644 --- a/src/components/SettingsWindow.jsx +++ b/src/components/SettingsWindow.jsx @@ -1434,6 +1434,7 @@ export default class SettingsWindow extends PureComponent { + diff --git a/src/electron.js b/src/electron.js index 002ca5a2..fc97d2df 100644 --- a/src/electron.js +++ b/src/electron.js @@ -453,7 +453,8 @@ const defaultSettings = { detectIdleTimeEnabled: false, detectIdleTimeSeconds: 0, detectIdleTimeMinutes: 5, - detectIdleCheckFullscreen: true, + detectIdleCheckFullscreen: false, + detectIdleMedia: false, idleRestoreSeconds: 0, wakeRestoreSeconds: 0, hardwareRestoreSeconds: 0, @@ -3891,11 +3892,22 @@ function isFocusedWindowFullscreen() { } } +function isMediaPlaying() { + try { + if(!settings.detectIdleMedia) return false; + const mediaPlaying = MediaStatus.getPlaybackStatus() + return (mediaPlaying === "playing" ? true : false) + } catch(e) { + console.log(e) + return false + } +} + function idleCheckShort() { try { const idleTime = powerMonitor.getSystemIdleTime() - if (!userIdleDimmed && settings.detectIdleTimeEnabled && !settings.disableAutoApply && idleTime >= getIdleSettingValue() && !isFocusedWindowFullscreen()) { + if (!userIdleDimmed && settings.detectIdleTimeEnabled && !settings.disableAutoApply && idleTime >= getIdleSettingValue() && !isFocusedWindowFullscreen() && !isMediaPlaying()) { console.log(`\x1b[36mUser idle. Dimming displays.\x1b[0m`) userIdleDimmed = true idleMonitorBlock?.release?.()