mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Merge pull request #1864 from koreader/houqp-master
unschedule footer clock refresh task on document close.
This commit is contained in:
@@ -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() .. "%"
|
||||
|
||||
Reference in New Issue
Block a user