Merge pull request #1864 from koreader/houqp-master

unschedule footer clock refresh task on document close.
pull/1869/head
Huang Xin 8 years ago
commit 203048cf40

@ -4,10 +4,11 @@ Hacking
Developing UI Widgets
---------------------
If you need to create new UI widgets, `utils/wbuilder.lua` is your friend. It
`utils/wbuilder.lua` is your friend, if you need to create new UI widgets. It
sets up a minimal environment to bootstrap KOReader's UI framework to avoid
starting the whole reader. This gives you quick feedback loop while iterating
through your widget changes.
through your widget changes. It's also a handy tool for debugging widget
issues.
To get a taste of how it works, try running this command at the root of
KOReader's source tree:
@ -19,5 +20,5 @@ KOReader's source tree:
It will spawn up an emulator window with a grid and simple timer widget for
demonstration.
You can add your own `UIManager:show` show call at the end of
`utils/wbuilder.lua` to test your new widget.
You can add more `UIManager:show` call at the end of `utils/wbuilder.lua` to
test your new widgets.

@ -17,7 +17,6 @@ local Font = require("ui/font")
local _ = require("gettext")
local util = require("util")
local auto_refresh_scheduled = false
local ReaderFooter = InputContainer:new{
mode = 1,
@ -158,8 +157,16 @@ function ReaderFooter:init()
end
self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode
self:applyFooterMode()
if self.settings.auto_refresh_time and not auto_refresh_scheduled then
self:autoRefreshTime()
if self.settings.auto_refresh_time then
self.autoRefreshTime = function()
self:updateFooterPage()
UIManager:setDirty(self.view.dialog, "ui", self[1][1][1].dimen)
UIManager:scheduleIn(61 - tonumber(os.date("%S")), self.autoRefreshTime)
end
UIManager:scheduleIn(61 - tonumber(os.date("%S")), self.autoRefreshTime)
self.onCloseDocument = function()
UIManager:unschedule(self.autoRefreshTime)
end
end
end
@ -213,19 +220,6 @@ function ReaderFooter:addToMainMenu(tab_item_table)
})
end
function ReaderFooter:autoRefreshTime()
if self.settings.auto_refresh_time then
UIManager:scheduleIn(61 - tonumber(os.date("%S")) , function()
self:autoRefreshTime()
self:updateFooterPage()
UIManager:setDirty(self.view.dialog, "ui", self[1][1][1].dimen)
end)
auto_refresh_scheduled = true
else
auto_refresh_scheduled = false
end
end
function ReaderFooter:getBatteryInfo()
local powerd = Device:getPowerDevice()
return "B:" .. (powerd:isCharging() and "+" or "") .. powerd:getCapacity() .. "%"

Loading…
Cancel
Save