From f3149b0b2c79f597f31d784ef29fc7c1dcf5e0d2 Mon Sep 17 00:00:00 2001 From: ycrichard Date: Sun, 16 Oct 2016 19:22:26 +0200 Subject: [PATCH] add frontlight information in the footer including context menu --- frontend/apps/reader/modules/readerfooter.lua | 25 +++++++++++++++++-- .../apps/reader/modules/readerkobolight.lua | 6 +++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index a91b246f8..244c07689 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -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 diff --git a/frontend/apps/reader/modules/readerkobolight.lua b/frontend/apps/reader/modules/readerkobolight.lua index 2f3efda69..19a77fc54 100644 --- a/frontend/apps/reader/modules/readerkobolight.lua +++ b/frontend/apps/reader/modules/readerkobolight.lua @@ -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