add frontlight information in the footer including context menu

pull/2290/head
ycrichard 8 years ago committed by Qingping Hou
parent 0facc96f4c
commit f3149b0b2c

@ -27,6 +27,7 @@ local MODE = {
percentage = 5,
book_time_to_read = 6,
chapter_time_to_read = 7,
frontlight = 8,
}
local MODE_INDEX = {}
for k,v in pairs(MODE) do
@ -64,6 +65,7 @@ function ReaderFooter:init()
percentage = true,
book_time_to_read = true,
chapter_time_to_read = true,
frontlight = false,
}
if self.settings.disabled then
self.resetLayout = function() end
@ -181,6 +183,7 @@ local options = {
percentage = _("Progress percentage"),
book_time_to_read = _("Book time to read"),
chapter_time_to_read = _("Chapter time to read"),
frontlight = _("Frontlight level"),
}
function ReaderFooter:addToMainMenu(tab_item_table)
@ -232,6 +235,7 @@ function ReaderFooter:addToMainMenu(tab_item_table)
get_minibar_option("percentage"),
get_minibar_option("book_time_to_read"),
get_minibar_option("chapter_time_to_read"),
get_minibar_option("frontlight"),
}) do
table.insert(sub_items, v)
end
@ -241,6 +245,17 @@ function ReaderFooter:addToMainMenu(tab_item_table)
})
end
function ReaderFooter:getFrontlightInfo()
local powerd = Device:getPowerDevice()
if powerd.is_fl_on ~= nil and powerd.is_fl_on == true then
if powerd.fl_intensity ~= nil then
return string.format("L: %d%%", powerd.fl_intensity)
end
else
return "L: Off"
end
end
function ReaderFooter:getBatteryInfo()
local powerd = Device:getPowerDevice()
return "B:" .. (powerd:isCharging() and "+" or "") .. powerd:getCapacity() .. "%"
@ -344,6 +359,9 @@ function ReaderFooter:_updateFooterText()
if self.settings.all_at_once then
local info = {}
if self.settings.frontlight and Device:hasFrontlight() then
table.insert(info, self:getFrontlightInfo())
end
if self.settings.battery then
table.insert(info, self:getBatteryInfo())
end
@ -382,6 +400,8 @@ function ReaderFooter:_updateFooterText()
info = self:getBookTimeToRead()
elseif self.mode == MODE.chapter_time_to_read then
info = self:getChapterTimeToRead()
elseif self.mode == MODE.frontlight and Device:hasFrontlight() then
info = self:getFrontlightInfo()
else
info = ""
end
@ -428,6 +448,7 @@ function ReaderFooter:applyFooterMode(mode)
-- 5 for progress percentage
-- 6 for from statistics book time to read
-- 7 for from statistics chapter time to read
-- 8 for front light level
if mode ~= nil then self.mode = mode end
self.view.footer_visible = (self.mode ~= MODE.off)
end
@ -458,14 +479,14 @@ function ReaderFooter:onTapFooter(arg, ges)
self.mode = MODE.page_progress
end
else
self.mode = (self.mode + 1) % 8
self.mode = (self.mode + 1) % 9
for i, m in ipairs(MODE_INDEX) do
if self.mode == MODE.off then break end
if self.mode == i then
if self.settings[m] then
break
else
self.mode = (self.mode + 1) % 8
self.mode = (self.mode + 1) % 9
end
end
end

@ -90,6 +90,9 @@ end
function ReaderKoboLight:onTap()
Device:getPowerDevice():toggleFrontlight()
self:onShowOnOff()
if self.view.footer_visible and self.view.footer.settings.frontlight then
self.view.footer:updateFooter()
end
return true
end
@ -119,6 +122,9 @@ function ReaderKoboLight:onSwipe(arg, ges)
powerd:setIntensity(new_intensity)
self:onShowIntensity()
end
if self.view.footer_visible and self.view.footer.settings.frontlight then
self.view.footer:updateFooter()
end
end
return true
end

Loading…
Cancel
Save