add auto refresh time option for status bar, close #1769

pull/1787/head
chrox 8 years ago
parent 1dff6c7bc6
commit 41d3642467

@ -18,6 +18,8 @@ local DEBUG = require("dbg")
local _ = require("gettext") local _ = require("gettext")
local util = require("util") local util = require("util")
local auto_refresh_scheduled = false
local ReaderFooter = InputContainer:new{ local ReaderFooter = InputContainer:new{
mode = 1, mode = 1,
visible = true, visible = true,
@ -157,10 +159,14 @@ function ReaderFooter:init()
end end
self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode
self:applyFooterMode() self:applyFooterMode()
if self.settings.auto_refresh_time and not auto_refresh_scheduled then
self:autoRefreshTime()
end
end end
local options = { local options = {
all_at_once = _("Show all at once"), all_at_once = _("Show all at once"),
auto_refresh_time = _("Auto refresh time"),
progress_bar = _("Progress bar"), progress_bar = _("Progress bar"),
toc_markers = _("Chapter markers"), toc_markers = _("Chapter markers"),
battery = _("Battery status"), battery = _("Battery status"),
@ -180,7 +186,7 @@ function ReaderFooter:addToMainMenu(tab_item_table)
return self.settings[option] == true return self.settings[option] == true
end, end,
enabled_func = function() enabled_func = function()
return not self.settings.diabled return not self.settings.disabled
end, end,
callback = function() callback = function()
self.settings[option] = not self.settings[option] self.settings[option] = not self.settings[option]
@ -194,6 +200,7 @@ function ReaderFooter:addToMainMenu(tab_item_table)
text = _("Status bar"), text = _("Status bar"),
sub_item_table = { sub_item_table = {
get_minibar_option("all_at_once"), get_minibar_option("all_at_once"),
get_minibar_option("auto_refresh_time"),
get_minibar_option("progress_bar"), get_minibar_option("progress_bar"),
get_minibar_option("toc_markers"), get_minibar_option("toc_markers"),
get_minibar_option("battery"), get_minibar_option("battery"),
@ -207,6 +214,19 @@ function ReaderFooter:addToMainMenu(tab_item_table)
}) })
end 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() function ReaderFooter:getBatteryInfo()
local powerd = Device:getPowerDevice() local powerd = Device:getPowerDevice()
return "B:" .. (powerd:isCharging() and "+" or "") .. powerd:getCapacity() .. "%" return "B:" .. (powerd:isCharging() and "+" or "") .. powerd:getCapacity() .. "%"
@ -244,7 +264,6 @@ function ReaderFooter:getChapterTimeToRead()
return self:getDataFromStatistics("TC: ", (left and left or self.pages - self.pageno)) return self:getDataFromStatistics("TC: ", (left and left or self.pages - self.pageno))
end end
function ReaderFooter:getDataFromStatistics(title, pages) function ReaderFooter:getDataFromStatistics(title, pages)
local statistics_data = self.ui.doc_settings:readSetting("stats") local statistics_data = self.ui.doc_settings:readSetting("stats")
local sec = 'na' local sec = 'na'
@ -256,7 +275,6 @@ function ReaderFooter:getDataFromStatistics(title, pages)
return title .. sec return title .. sec
end end
function ReaderFooter:updateFooterPage() function ReaderFooter:updateFooterPage()
if type(self.pageno) ~= "number" then return end if type(self.pageno) ~= "number" then return end
self.progress_bar.percentage = self.pageno / self.pages self.progress_bar.percentage = self.pageno / self.pages

Loading…
Cancel
Save