From 040dbfe1bdd50a8f2c396421da0be94f8a4ee2e7 Mon Sep 17 00:00:00 2001 From: Robert-Jan de Dreu <160743+rjd22@users.noreply.github.com> Date: Sat, 25 Jun 2022 19:58:30 +0200 Subject: [PATCH] Pocketbook: Keep wifi alive as long as wifi is enabled (#9208) Schedule wifi keep-alive on wifi start but do not reschedule when connection is lost. This will make sure this code is not run when wifi is disabled again saving some battery and cpu cycles. --- frontend/device/pocketbook/device.lua | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua index e0379ad55..63542c8e5 100644 --- a/frontend/device/pocketbook/device.lua +++ b/frontend/device/pocketbook/device.lua @@ -334,10 +334,28 @@ function PocketBook:reboot() end function PocketBook:initNetworkManager(NetworkMgr) + local UIManager = require("ui/uimanager") + + local function keepWifiAlive() + -- Make sure only one wifiKeepAlive is scheduled + UIManager:unschedule(keepWifiAlive) + + if NetworkMgr:isWifiOn() then + logger.dbg("ping wifi keep alive and reschedule") + + inkview.NetMgrPing() + UIManager:scheduleIn(30, keepWifiAlive) + else + logger.dbg("wifi is disabled do not reschedule") + end + end + function NetworkMgr:turnOnWifi(complete_callback) inkview.WiFiPower(1) - if inkview.NetConnect(nil) ~= C.NET_OK then - logger.info('NetConnect failed') + if inkview.NetConnect(nil) == C.NET_OK then + keepWifiAlive() + else + logger.info("NetConnect failed") end if complete_callback then complete_callback()