diff --git a/frontend/device/generic/powerd.lua b/frontend/device/generic/powerd.lua index 039eb4a19..3bb8dbadd 100644 --- a/frontend/device/generic/powerd.lua +++ b/frontend/device/generic/powerd.lua @@ -191,6 +191,11 @@ function BasePowerD:getAuxCapacity() return self.aux_batt_capacity end +function BasePowerD:invalidateCapacityCache() + self.last_capacity_pull_time = TimeVal:new{ sec = 0, usec = 0} + self.last_aux_capacity_pull_time = TimeVal:new{ sec = 0, usec = 0} +end + function BasePowerD:isAuxCharging() return self:isAuxChargingHW() end diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index 941d3c6e4..ceaa6c6e3 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -1792,6 +1792,10 @@ Executes all the operations of a resume (i.e., wakeup) request. This function usually wakes up the device. ]] function UIManager:resume() + -- MONOTONIC doesn't tick during suspend, + -- invalidate the last battery capacity pull time so that we get up to date data immediately. + Device:getPowerDevice():invalidateCapacityCache() + if Device:isCervantes() or Device:isKobo() or Device:isSDL() or Device:isRemarkable() or Device:isSonyPRSTUX() then self.event_handlers["Resume"]() elseif Device:isKindle() then