From d0b450efde1f688c83719c892e04b933edcc52e5 Mon Sep 17 00:00:00 2001 From: chrox Date: Sun, 1 Feb 2015 12:49:46 +0800 Subject: [PATCH] refresh battery capacity when going out of suspend This should fix #1383. --- frontend/device/generic/device.lua | 17 ++++++++++------- frontend/device/generic/powerd.lua | 4 ++++ frontend/device/kobo/device.lua | 6 +++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index baa8a8d92..df63d11f0 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -70,6 +70,7 @@ function Device:getPowerDevice() return self.powerd end +-- ONLY used for Kindle devices function Device:intoScreenSaver() local UIManager = require("ui/uimanager") if self.charging_mode == false and self.screen_saver_mode == false then @@ -79,18 +80,19 @@ function Device:intoScreenSaver() UIManager:sendEvent(Event:new("FlushSettings")) end +-- ONLY used for Kindle devices function Device:outofScreenSaver() if self.screen_saver_mode == true and self.charging_mode == false then -- wait for native system update screen before we recover saved -- Blitbuffer. util.usleep(1500000) self.screen:restoreFromSavedBB() - self.screen:refreshFull() - self.survive_screen_saver = true + self:resume() end self.screen_saver_mode = false end +-- ONLY used for Kobo and PocketBook devices function Device:onPowerEvent(ev) local Screensaver = require("ui/screensaver") if (ev == "Power" or ev == "Suspend") and not self.screen_saver_mode then @@ -102,12 +104,12 @@ function Device:onPowerEvent(ev) Screensaver:show() self:prepareSuspend() UIManager:sendEvent(Event:new("FlushSettings")) - UIManager:scheduleIn(10, self.Suspend) + UIManager:scheduleIn(10, self.suspend) elseif (ev == "Power" or ev == "Resume") and self.screen_saver_mode then DEBUG("Resuming...") -- restore to previous rotation mode self.screen:setRotationMode(self.orig_rotation_mode) - self:Resume() + self:resume() Screensaver:close() end end @@ -121,14 +123,15 @@ function Device:prepareSuspend() self.screen_saver_mode = true end -function Device:Suspend() +function Device:suspend() end -function Device:Resume() +function Device:resume() local UIManager = require("ui/uimanager") - UIManager:unschedule(self.Suspend) + UIManager:unschedule(self.suspend) self.screen:refreshFull() self.screen_saver_mode = false + self.powerd:refreshCapacity() end function Device:usbPlugIn() diff --git a/frontend/device/generic/powerd.lua b/frontend/device/generic/powerd.lua index 2de9b5f1e..920ca0a65 100644 --- a/frontend/device/generic/powerd.lua +++ b/frontend/device/generic/powerd.lua @@ -73,6 +73,10 @@ function BasePowerD:getCapacity() end end +function BasePowerD:refreshCapacity() + self:getCapacityHW() +end + function BasePowerD:isCharging() return self:isChargingHW() end diff --git a/frontend/device/kobo/device.lua b/frontend/device/kobo/device.lua index e5bf38ca6..8ccb15eb9 100644 --- a/frontend/device/kobo/device.lua +++ b/frontend/device/kobo/device.lua @@ -120,11 +120,11 @@ function Kobo:getFirmwareVersion() version_file:close() end -function Kobo:Suspend() +function Kobo:suspend() os.execute("./suspend.sh") end -function Kobo:Resume() +function Kobo:resume() os.execute("echo 0 > /sys/power/state-extended") if self.powerd then if KOBO_LIGHT_ON_START and tonumber(KOBO_LIGHT_ON_START) > -1 then @@ -134,7 +134,7 @@ function Kobo:Resume() end end - Generic.Resume(self) + Generic.resume(self) end -------------- device probe ------------