From d97d3b3bd40ae362dfc3befb1c1062d7d7e27f9c Mon Sep 17 00:00:00 2001 From: Loren Eteval Date: Tue, 28 May 2024 11:51:36 +0800 Subject: [PATCH] Handle power save mode Signed-off-by: Loren Eteval --- Furious/QtFramework/CoreProcess.py | 10 ++++++++-- Furious/QtFramework/NetworkStateManager.py | 13 ++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Furious/QtFramework/CoreProcess.py b/Furious/QtFramework/CoreProcess.py index bbcebe4..0911c25 100644 --- a/Furious/QtFramework/CoreProcess.py +++ b/Furious/QtFramework/CoreProcess.py @@ -122,8 +122,14 @@ class CoreProcess(CoreFactory, ABC): PySide6LegacyEventLoopWait(waitTime) if self.checkIsRunning(): - # Start core daemon - self._daemonTimer.start(CORE_CHECK_ALIVE_INTERVAL) + if AppSettings.isStateON_('PowerSaveMode'): + # Power optimization + logger.info(f'no core daemon for {self.name()} in power save mode') + + self._daemonTimer.stop() + else: + # Start core daemon + self._daemonTimer.start(CORE_CHECK_ALIVE_INTERVAL) return True else: diff --git a/Furious/QtFramework/NetworkStateManager.py b/Furious/QtFramework/NetworkStateManager.py index c184198..04c2f78 100644 --- a/Furious/QtFramework/NetworkStateManager.py +++ b/Furious/QtFramework/NetworkStateManager.py @@ -105,16 +105,19 @@ class NetworkStateManager(SupportConnectedCallback, AppQNetworkAccessManager): self.jobTimeoutTimer.timeout.connect(functools.partial(abort, networkReply)) self.jobTimeoutTimer.start(NetworkStateManager.MIN_JOB_INTERVAL - 500) - def startTest(self): - self.jobArrangeTimer.start(NetworkStateManager.MIN_JOB_INTERVAL) - def stopTest(self): self.jobArrangeTimer.stop() def connectedCallback(self): - self.jobInterval = NetworkStateManager.MIN_JOB_INTERVAL + if AppSettings.isStateON_('PowerSaveMode'): + # Power optimization + logger.info('no job for network state manager in power save mode') - self.jobArrangeTimer.start(self.jobInterval) + self.jobArrangeTimer.stop() + else: + self.jobInterval = NetworkStateManager.MIN_JOB_INTERVAL + + self.jobArrangeTimer.start(self.jobInterval) def disconnectedCallback(self): self.jobArrangeTimer.stop()